我正在尝试每天01:00 UTC运行一个php脚本。我有线路
00 01 * * * /usr/bin/php -f /var/www/html/test.php
在我的crontab中,但由于某种原因,它没有运行我的脚本。我知道脚本本身是有效的,因为我已经测试过了。它只是不会在crontab中运行。我也尝试过使用
00 01 * * * php /var/www/html/test.php
但这也不起作用。我已经在我尝试运行的php脚本的最开头添加了#!/usr/bin/php
。我也尝试过-q而不是-f。没有什么工作,我不知道我能做些什么来解决这个问题。如果这仍然不起作用,我还应该尝试其他方法吗?
答案 0 :(得分:0)
确保您的路径正确无误。试试这个语法:
cd /var/www/html; php -q -c ./ test.php
-q
标志禁止将任何header()写入标准输出。这会强制您的脚本使用php-cgi二进制文件而不是命令行版本执行。
-c
标志阻止操作系统更改目录,因为您使用cd
执行此操作。
答案 1 :(得分:0)
我最终做的是编写一个导出更多路径的ksh脚本,然后运行php脚本。这很有用。
export ORACLE_HOME=/opt/oracle/product/11.2.0/client
export LD_LIBRARY_PATH=/opt/oracle/product/11.2.0/client/lib/
export PATH=$PATH:/opt/oracle/product/11.2.0/client/bin
php /var/www/html/test.php
答案 2 :(得分:0)
有一个本地人 运行Web服务器,您可以调用
http://localhost/test.php
来自你的crontab