我有一个带有域映射的多站点环境。
我尝试使用这两个示例来使Linux cron工作而不是wp-cron
:
然后,我在cPanel中设置了cron并且看起来都很棒,但我开始收到包含来自cron作业的错误的电子邮件:
PHP Warning: include_once(/my-cont/sunrise.php) [<a href='function.include-once'>function.include-once</a>]: failed to open stream: No such file or directory in /home/user/public_html/wp-includes/ms-settings.php on line 18
PHP Warning: include_once() [<a href='function.include'>function.include</a>]: Failed opening '/my-cont/sunrise.php' for inclusion (include_path='.:/usr/local/php53/pear') in /home/user/public_html/wp-includes/ms-settings.php on line 18
PHP Notice: Undefined index: HTTP_HOST in /home/user/public_html/wp-includes/ms-settings.php on line 30
删除&#34; HTTP_HOST&#34;注意,我已经添加到PHP文件:$_SERVER['HTTP_HOST'] = 'mydomain.com';
my-cont
是我的内容目录的新名称。我更改了wp-config.php
以反映这一点:
define( 'WP_CONTENT_DIR', $_SERVER['DOCUMENT_ROOT'] . '/my-cont' );
define( 'WP_CONTENT_URL', 'http://'.$_SERVER['HTTP_HOST'].'/my-cont');
有什么想法吗?
答案 0 :(得分:0)
我还在WordPress多站点环境中运行了linux cron作业,并且遇到了与HTTP_HOST相同的错误。
我的cron脚本加载wp-load.php以获取对WordPress核心功能的访问权限。当在一个站点上,它们工作正常,切换到多站点,我收到了错误。
在提交WP核心的完整调试之前,我尝试了最简单和最明显的。
在我添加的每个cron脚本中,
define('DOING_CRON', true);
if (!isset($_SERVER['HTTP_HOST'])) {
$_SERVER['HTTP_HOST'] = 'domain.com'; // replace with primary host
}
// then load wordpress
require 'wp-load.php';
此操作已足够,我的linux cron脚本可以在没有进一步事件的情况下恢复