禁用wp-cron,并在多站点环境中运行linux cron

时间:2015-04-21 16:14:23

标签: php linux wordpress cron

我有一个带有域映射的多站点环境。

我尝试使用这两个示例来使Linux cron工作而不是wp-cron

  1. https://www.lucasrolff.com/wordpress/why-wp-cron-sucks/
  2. https://tigr.net/3203/2014/09/13/getting-wordpress-cron-work-in-multisite-environment/
  3. 然后,我在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');
    

    有什么想法吗?

1 个答案:

答案 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脚本可以在没有进一步事件的情况下恢复