cron选项卡不工作php
我通过输入此命令添加了一个cronjob - crontab -e。我在该文件中添加了以下任务 -cron选项卡不工作php
*/5 * * * * /var/www/web/vendors/shells/aggregated_deals.php
*/5 * * * * /var/www/web/vendors/shells/deals.php
这些是php脚本。之后,我重新启动了Apache服务器,但这些脚本没有执行。系统日志日志文件为空。 请帮我运行这个cron。
我不认为你可以通过调用它这样执行PHP文件,我总是用卷曲:
*/5 * * * * curl http://domain.com/page
或者我想你可以使用php
命令本身,如果你不运行它吨要使用Web服务器:
*/5 * * * * php /var/www/web/vendors/shells/aggregated_deals.php
无论你在crontab规则星型后会是什么命令执行对系统。如果你在终端上运行命令“/var/www/web/vendors/shells/aggregated_deals.php”,我肯定没有任何事情发生......你需要把它作为一个PHP脚本来调用。
为什么不用正确的用户调用php-cli?
*/5 * * * * www-data php /var/www/web/vendors/shells/aggregated_deals.php
OR
*/5 * * * * root /usr/bin/php /var/www/web/vendors/shells/aggregated_deals.php
或者类似的东西。 你已经安装了php-cli吗?
如果xe使用'crontab -e'作为普通用户,则xe应该编辑该用户的每个用户的crontab文件;没有必要在那里指定用户。 – Piskvor
Oups!谢谢 ! –
我不认为会自行运行 - 你需要使用PHP解释器来运行脚本,就像这样:
/usr/bin/php /var/www/web/vendors/shells/aggregated_deals.php
请注意,您的安装可能有php
别处 - 使用命令which php
上命令行来找出位置。
现在我通过添加/ usr/bin/php来编辑我的crontab,但仍然没有执行这两个文件 – Abhimanyu
首先,您需要确保您有PHP CLI可用。你可以这样做:
$ php -v
如果你看到一些理智的输出,那么PHP CLI是可用的。否则,你需要安装它。安装取决于您使用的发行版。
第二,如果你想直接运行CLI脚本,你需要让他们可执行:
$ chmod +x /var/www/web/vendors/shells/aggregated_deals.php
$ chmod +x /var/www/web/vendors/shells/deals.php
三,PHP CLI脚本不相关的Apache和你不需要重新启动它,使CLI脚本工作。
以上所有都很好-still脚本没有运行 – Abhimanyu
您需要告诉服务器使用PHP执行文件。是否所有的stesps在Elnurs答案描述,并在cron把这些作为你的行:
*/5 * * * * php -f /var/www/web/vendors/shells/aggregated_deals.php > /tmp/my.log 2>&1
*/5 * * * * php -f /var/www/web/vendors/shells/deals.php > /tmp/my.log 2>&1
如果不工作,你可能需要包括对PHP的完整路径。 我也刚刚添加了一些行来使脚本记录任何输出。
你需要运行它的蛋糕风格...你一定会是
cake aggregated_deals > /tmp/my.log
cake deals > /tmp/my.log 2>&1
这个蛋糕是你夹饼,你应该从你的应用程序文件夹中运行它运行
cake shellName shellParam
我你的情况,并...我不知道如何从cron做到这一点,但是这是你有错...
这asuming这些脚本是有效cakeShells
你需要告诉服务器用PHP执行文件。是否所有的stesps在Elnurs答案描述,并在cron把这些作为你的行:
*/5 * * * * php -f /var/www/web/vendors/shells/aggregated_deals.php > /tmp/my.log 2>&1
*/5 * * * * php -f /var/www/web/vendors/shells/deals.php > /tmp/my.log 2>&1
$ chmod +x /var/www/web/vendors/shells/aggregated_deals.php
$ chmod +x /var/www/web/vendors/shells/deals.php
我知道这是发布后很长一段时间,但它看起来像我不是唯一的一个。
反正我的建议是将路径添加到PHP中的cron线:
*/5 * * * * /usr/bin/php -f /var/www/web/vendors/shells/aggregated_deals.php > /tmp/my.log 2>&1
*/5 * * * * /usr/bin/php -f /var/www/web/vendors/shells/deals.php > /tmp/my.log 2>&1
再次确认权限都不错
你有没有尝试自己manualy在浏览器中运行?你有没有尝试使用php运行命令行? –
它是cake1.3还是2.0?看起来像1.3我 – mark
它是蛋糕1.3。 – Abhimanyu