Cron叫什么位置?

时间:2013-11-19 14:55:34

标签: php json file-io cron

我创建了一个简单的PHP脚本,由我的远程网络服务器上的CRON守护程序执行。每隔几分钟,脚本会在另一个网站上查找一些JSON数据,并将结果存储在与自身相同的文件夹中的文件中。

但是,似乎在浏览器中导航到页面时使用的文件使用的文件与执行cron时的文件不同。

换句话说:去这里时:

www.example.com/cronscripts/my_script.php使用了文件/home/user_xxx/domains/example.com/public_html/cronscripts/datafile.json

但是,使用以下cron语句调用脚本时:

/usr/local/bin/php /home/user_xxx/domains/example.com/public_html/cronscripts/my_script.php 使用不同位置的文件。此文件是否位于Linux服务器的/ usr / local / bin / php文件夹中?如果是这样,我无法手动访问它,因为我只能访问/ home / user_xxx /文件夹。

有人可以告诉我使用Cronjobs时文件的最终位置吗?

4 个答案:

答案 0 :(得分:1)

这似乎是该位置的路径不匹配,您很可能在json文件的某处使用相对路径。

我认为你应该安排你的cronjob如下,看看是否有效

* * * * * cd /home/user_xxx/domains/example.com/public_html/cronscripts && /usr/local/bin/php my_script.php

答案 1 :(得分:0)

您应该使用服务器上脚本的绝对路径,即/var/www/script.php

尝试改为使用

* / 1 * * * * php /home/user_xxx/domains/example.com/public_html/cronscripts/my_script.php

答案 2 :(得分:0)

使用chdir()确保您从正确的目录开始也可以提供帮助。

答案 3 :(得分:-1)

请注意:请始终使用#!/ bin / env php (有关详细信息,请参阅http://seancoates.com/blogs/use-env