Running wp-cron from CLI

时间:2017-08-26 作者:Nimbuz

不确定我关于跑步的假设是否正确wp-cron 从CLI调用要比通过wgetcurl, 所以无论哪种方式,我都在尝试:

/usr/bin/php /var/www/mywebsite.com/wp-cron.php?import_key=<keyhere>&import_id=1&action=processing
我确保了PHP的路径和文件是正确的,但我不断遇到以下错误:

无法打开输入文件:wp cron。php?import\\u键=

我做错了什么?

2 个回复
SO网友:kero

或者,你可以使用WP-CLI 这是为类似的场景开发的。在这样的短时间安装之后

$ curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
$ chmod +x wp-cli.phar
$ sudo mv wp-cli.phar /usr/local/bin/wp
您可以这样运行计划的任务

$ wp cron event run --due-now --path=/var/www/mywebsite.com/
或通过crontab (每5分钟一次)

*/5 * * * * wp cron event run --due-now --path=/var/www/mywebsite.com/
你可以用一个特定的钩子

$ wp cron event run myhook --due-now --path=/var/www/mywebsite.com/
或使用--url parameter.

SO网友:Mark Kaplun

CLI PHP解释器与Web服务器调用的解释器不完全相同。您期望Web服务器传递的许多环境信息将不存在于CLI中,CLI也不假设其输入是URL。

因为在CLI中? 但有必要&, shell环境传递给php/var/www/mywebsite.com/wp-cron.php?import_key 作为应包含要运行的文件的参数。

相反,您应该使用wget 在适当的web环境中,通过web服务器调用操作wget mywebsite.com/wp-cron.php?import_key=<keyhere>&import_id=1&action=processing

旁注:理论上,您不需要将参数传递给cron,然后您就可以/usr/bin/php /var/www/mywebsite.com/wp-cron.php

结束

相关推荐

在Eclipse中使用XDebug调试wp_cron作业

我为PHP开发人员使用Eclipse(Neon.3发行版(4.6.3)以备不时之需)和XDebug来开发插件/主题。这一切都很好(即,我可以在插件代码中设置断点并逐步执行,等等)。然而,我似乎无法让XDebug在由1次触发的函数中的断点处停止WP_Cron 工作例如,给定以下条件:add_action (\'wpse_my_hook\', \'wpse_my_cron_function\') ; function wpse_my_function () {