这个问题旨在作为其他人查找的信息帖子,因为幸运的是我已经找到了解决方案。
我尝试在 Cloudways 服务器上的 crontab 中将 Wordpress-CLI 命令作为 cron 作业运行。该命令直接在终端中运行没有任何问题,但在使用 crontab 启动时失败并出现致命 PHP 错误。
Wordpress-CLI 的基本命令如下所示:
wp migratedb profile [id]
由于 crontab 运行的上下文通常是未知的,并且 $PATH 变量可能不可用,因此我修改了命令以提供必要的绝对路径:
/usr/local/bin/wp migratedb profile [id] --path=/absolute/path/to/wordpress/core/files
同样,从终端启动时,这个修改后的命令也可以完美运行,没有任何问题。
最终的 crontab 条目看起来像这样:
0 5 * * * /usr/local/bin/wp migratedb profile [id] --path=/absolute/path/to/wordpress/core/files
当从调度程序运行时,它会产生以下错误:
PHP Fatal error: require(): Failed opening required 'wp-salt.php' (include_path='.:/usr/share/php') in phar:///usr/local/bin/wp/vendor/wp-cli/config-command/src/Config_Command.php(444) : eval()'d code on line 34
Run Code Online (Sandbox Code Playgroud)
经过一些实验,我意识到除了非常基本的命令之外,所有WP-CLI 命令都会发生此错误
wp --info
,产生以下输出:
OS: Linux 4.19.0-21-amd64 #1 SMP Debian 4.19.249-2 (2022-06-30) x86_64
Shell: /bin/sh
PHP …Run Code Online (Sandbox Code Playgroud)