2015-05-14 48 views
0

我使用PHP5制作website,这里是我的设置:该网站托管在运行Raspbian(Debian)操作系统的Raspberry Pi上。我使用Nginx作为php5-fpm 5.4.39的web服务器。我的网站是使用Atomik Framework制作的,我的脚本是使用ConsoleKit插件制作的(这有点特殊,但问题可能不是)。使用crontab执行PHP脚本时出现错误

所以我有我的脚本,我用php /path/to/index.php <command>运行它。它在我的shell中使用它的时候非常好用,但是当我尝试让cron执行它时,它会打印出一个错误,说明$_SERVER['REQUEST_METHOD']没有被定义,但这是我可以通过强制该变量解决某个值的问题。之后,什么都没有发生,我不知道该怎么办。我尝试了一切:不同的命令,在外部bash脚本中运行命令,使用PHP she-bang,它们都不起作用。 有没有人有什么可能会导致此问题的想法?也许一个cron可以运行的不同命令可以解决这个问题?事实上,“没有用户”(我猜我不是Linux专家)正在运行该脚本的问题?

+0

你包括任何其他文件,'require_once'或'include_once'?因为从cron运行这些路径可能会有问题 – RightClick

回答

0

你可能会引发通过HTTP这样的PHP代码在你的cron:

30 11 * * * /usr/bin/wget http://www.example.com/cron.php 
+0

是的,但脚本无法通过网络访问,所以没有人可以运行它。这实际上是一个网站之外的脚本,可以隐藏数据库操作。 – GilDev

0

要调试的问题,您将需要获得访问日志。

*/1 * * * * full_path_to_your_php_script.php >> full_path_to_your_log_file.log 2>&1 

然后检查full_path_to_your_log_file.log文件

+0

是的,我已经尝试过。当我将'$ _SERVER ['REQUEST_METHOD']'变量强制为'GET'时,我什么也没有。当我没有设置这个变量时,Atomik Framework中有一堆错误,说这个变量没有设置,脚本无法继续执行(尽管我在执行shell脚本时没有遇到这些错误,该变量甚至没有设置!真奇怪......)。 – GilDev