我在 Xubuntu 中创建了一个 cronjob,每 5 分钟运行一次 PHP 脚本。我是这样做的,如下所示。
我输入了以下命令:
$ crontab -e
然后输入以下内容:
*/5 * * * * /usr/bin/php /var/www/pgrouting/workshop/web/php/calculation.php
我不明白有什么用/usr/bin/php
,目录中没有这样的文件bin
,但PHP脚本无法运行?
答案1
“问题”通常是 PHP 旨在作为 Web 服务器中的模块运行。您可能需要先安装 php 的命令行版本,然后才能从命令行运行 php 脚本:
apt-get install php5-cli
/usr/bin/php
是要放置 php 二进制文件的默认位置,但如果您从源代码编译 php,它可能位于其他位置。
通常,PHP 脚本不会被格式化为 shell 脚本,因此您需要告诉 cron 应该使用哪个解释器来执行 php 脚本;这就是使用命令行的原因/usr/bin/php /var/www/pgrouting/workshop/web/php/calculation.php
。
您可以使用 shebang 格式化脚本并使其可执行(chmod +x script.php
),然后您可以直接从命令行调用它,而无需指定 php 作为解释器( ie ./script.php
):
#!/usr/bin/php
<?php
print "Hello world!\n" ;
?>
答案2
尝试使用 WGET 代替:
*/5 * * * * wget http://ip-address-or-domain-to-your-script/calculation.php