无法将 PHP-script 运行 作为 cronjob
Can't get PHP-script running as a cronjob
最近,由于主机维护,我的站点已移至其他服务器。自从我不能再将此脚本 运行 作为 cronjob:http://www.filmhuisalkmaar.nl/wp-content/themes/filmhuis-alkmaar/cron/load-shows.php
我尝试 运行使用 PHP 和以下 cronjob:
php /home/provadja/domains/filmhuisalkmaar.nl/public_html/wp-content/themes/filmhuis-alkmaar/cron/load-productions.php
但我一直收到以下错误:
PHP Warning: require_once(../inc/api.php): failed to open stream: No such file or directory in /home/provadja/domains/filmhuisalkmaar.nl/public_html/wp-content/themes/filmhuis-alkmaar/cron/load-productions.php on line 3 PHP Fatal error: require_once(): Failed opening required '../inc/api.php' (include_path='.:/usr/local/lib/php') in /home/provadja/domains/filmhuisalkmaar.nl/public_html/wp-content/themes/filmhuis-alkmaar/cron/load-productions.php on line 3
我检查了说明丢失的文件是否还在。他们是。我检查了文件权限,它们设置为 755,这应该没问题。对吗?
然后我用以下 cronjob 尝试了 wget:
/usr/bin/wget -O https://www.filmhuisalkmaar.nl/wp-content/themes/filmhuis-alkmaar/cron/load-shows.php
但后来我不断收到以下内容 URL:
wget: missing URL
Usage: wget [OPTION]... [URL]...
Try ‘wget --help’ for more options.
我真的很茫然。特别是因为它过去工作得很好。这非常令人沮丧,因为这些脚本对于我的网站保持更新至关重要。
任何帮助将不胜感激。谢谢。
试着运行这样:
cd /home/provadja/domains/filmhuisalkmaar.nl/public_html/wp-content/themes/filmhuis-alkmaar/cron/ && php load-productions.php
注意在启动时使用cd
命令。这意味着 "change current working directory to ../cron/ and then run script load-productions.php".
我更喜欢 cron 任务使用包含和必需脚本的完整路径。所以,而不是:
require_once("../inc/api.php");
我通常这样做:
$base = dirname(dirname(__FILE__));
require_once($base . "/inc/api.php");
这样服务器就知道要查找的确切位置,而不是相对于某些目录。
旁注:我也喜欢 /path/to/php -q /path/to/script.php
。 :)
我将引用 fvu 对我的问题的评论,我已经尝试过并且现在可以确认它完全有效:
1) does /home/provadja/domains/filmhuisalkmaar.nl/public_html/wp-content/themes/filmhuis-alkmaar/inc/api.php exist? 2) obvious error in wget usage (-O needs the name of the file in which to save the script output), try wget -O /dev/null https://www.filmhuisalkmaar.nl/wp-content/themes/filmhuis->alkmaar/cron/load-shows.php
非常感谢大家的帮助!
最近,由于主机维护,我的站点已移至其他服务器。自从我不能再将此脚本 运行 作为 cronjob:http://www.filmhuisalkmaar.nl/wp-content/themes/filmhuis-alkmaar/cron/load-shows.php
我尝试 运行使用 PHP 和以下 cronjob:
php /home/provadja/domains/filmhuisalkmaar.nl/public_html/wp-content/themes/filmhuis-alkmaar/cron/load-productions.php
但我一直收到以下错误:
PHP Warning: require_once(../inc/api.php): failed to open stream: No such file or directory in /home/provadja/domains/filmhuisalkmaar.nl/public_html/wp-content/themes/filmhuis-alkmaar/cron/load-productions.php on line 3 PHP Fatal error: require_once(): Failed opening required '../inc/api.php' (include_path='.:/usr/local/lib/php') in /home/provadja/domains/filmhuisalkmaar.nl/public_html/wp-content/themes/filmhuis-alkmaar/cron/load-productions.php on line 3
我检查了说明丢失的文件是否还在。他们是。我检查了文件权限,它们设置为 755,这应该没问题。对吗?
然后我用以下 cronjob 尝试了 wget:
/usr/bin/wget -O https://www.filmhuisalkmaar.nl/wp-content/themes/filmhuis-alkmaar/cron/load-shows.php
但后来我不断收到以下内容 URL:
wget: missing URL
Usage: wget [OPTION]... [URL]...
Try ‘wget --help’ for more options.
我真的很茫然。特别是因为它过去工作得很好。这非常令人沮丧,因为这些脚本对于我的网站保持更新至关重要。
任何帮助将不胜感激。谢谢。
试着运行这样:
cd /home/provadja/domains/filmhuisalkmaar.nl/public_html/wp-content/themes/filmhuis-alkmaar/cron/ && php load-productions.php
注意在启动时使用cd
命令。这意味着 "change current working directory to ../cron/ and then run script load-productions.php".
我更喜欢 cron 任务使用包含和必需脚本的完整路径。所以,而不是:
require_once("../inc/api.php");
我通常这样做:
$base = dirname(dirname(__FILE__));
require_once($base . "/inc/api.php");
这样服务器就知道要查找的确切位置,而不是相对于某些目录。
旁注:我也喜欢 /path/to/php -q /path/to/script.php
。 :)
我将引用 fvu 对我的问题的评论,我已经尝试过并且现在可以确认它完全有效:
1) does /home/provadja/domains/filmhuisalkmaar.nl/public_html/wp-content/themes/filmhuis-alkmaar/inc/api.php exist? 2) obvious error in wget usage (-O needs the name of the file in which to save the script output), try wget -O /dev/null https://www.filmhuisalkmaar.nl/wp-content/themes/filmhuis->alkmaar/cron/load-shows.php
非常感谢大家的帮助!