我有一个类似
的cron作业php /home/novinarb/public_html/index.php --uri="cron/24satahr"
但是'uri'param根本没有进入php脚本。我也试过没有 - 在uri面前但仍然没有。有什么想法吗?
答案 0 :(得分:1)
更健壮的方法是在PHP脚本中使用getopt()
或$argv
接受命令行参数并使其可执行。名为$argv
的{{1}}示例:
script.php
使其可执行:
#!/usr/bin/php
<?php
if (isset($argv[1])):
echo $argv[1];
endif;
?>
执行:
chmod +x script.php
将输出:
./script.php "cron/24satahr"
答案 1 :(得分:1)
我遇到了同样的问题但是在阅读了php的手册条目之后能够修复它。
最初我的设置如下:
/usr/bin/php -f /path/to/php/script.php -c 1426 >> /tmp/script.php.log 2>&1
我可以通过将行更改为:
来修复它/usr/bin/php -f /path/to/php/script.php -- -c 1426 >> /tmp/script.php.log 2>&1
根据手动输入,语法为:
php [options] [ -f ] file [[--] args...]
此外,
args... Arguments passed to script. Use '--' args when first argument starts with '-' or script is read from stdin
顺便说一句,我的cron命令变为:
/usr/bin/php -f /path/to/php/script.php -- -c 1426 >> /tmp/script.php.log 2>&1
它有效!
答案 2 :(得分:0)
php脚本是否正在运行?
我怀疑你需要在你的crontab行中提供php的完整路径。即使cron作业像你一样运行,它们也没有设置任何登录环境;这意味着他们没有你的$ PATH。