加入收藏 | 设为首页 | 会员中心 | 我要投稿 海南站长网 (https://www.0898zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

wordpress 优化 处理定时发布失败

发布时间:2022-06-24 06:46:37 所属栏目:教程 来源:互联网
导读:WordPress 不知道在哪个版本里面加入了定时发布功能,这个本来其实是很不错的功能,可惜有着各种各样的问题,比如我这台VPS安装完成之后,就一直无法成功发布文章. 第一种可能性: 那么考虑第二种错误的可能性,就是服务器上取得的时间不正确,这也是有可能性的,V
  WordPress 不知道在哪个版本里面加入了定时发布功能,这个本来其实是很不错的功能,可惜有着各种各样的问题,比如我这台VPS安装完成之后,就一直无法成功发布文章.
 
       第一种可能性:
 
  那么考虑第二种错误的可能性,就是服务器上取得的时间不正确,这也是有可能性的,VPS上可能存在时间的有三个地方,分别是操作系统的时间、数据库的时区设置、php的时区设置.
 
  CentOS时区设置
 
  查看 CentOS 系统时间的命令为:date -R,发现为 UTC  时间,中国应该为东8区,执行命令 cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime,再次 date -R,显示应该是:[root@li672-190 uploads]# date -R Wed,24 Dec 2014 23:30:39 +0800
 
  Mysql时区设置:
 
  Mysql 查看时区方法为:
 
  mysql -u root -p
  
  mysql> show variables like ‘%time_zone%';
  
  +——————+——–+
  
  | Variable_name | Value |
  
  +——————+——–+
  
  | system_time_zone | CST |
  
  | time_zone | SYSTEM |
  //phpfensi.com
  +——————+——–+
  这样表示读取的是系统时区,进行修改吧,修改的位置为 /etc/my.cnf。在 my.cnf 的[mysqld]项目中增加一条:
 
  default-time-zone = ‘+8:00′
 
  重启mysql之后,再次进入mysql里面查看时区,应该显示:
 
  mysql> show variables like ‘%time_zone%';
  
  +——————+——–+
  
  | Variable_name | Value |
  
  +——————+——–+
  
  | system_time_zone | CST |
  
  | time_zone | +08:00 |
  
  +——————+——–+
  
  2 rows in set (0.00 sec)
  
       PHP时区设置:
 
  PHP中也有时区设置,设置位置为 /etc/php.ini,设置ini文件中的[Date] 项,设置时区为 date.timezone = Asia/Shanghai,然后重启 php-fpm,通过修改这三个位置的时区设置之后,应该不会再有和wordpress相关的时区设置失误了,重新进入wordpress的后台,再次新建文章进行发布,依然提示失败.
 
  第二种可能性:
 
  从程序的角度出发,定时发布应该是在服务端计算时间,推测不能成功发布的原因,有两种可能性,第一个是时间计算是正确的,但是VPS 反应比较慢,等定时程序开始操作时,原定时间又过期了,导致进入无限循环,无法发布成功,我们先按照这个思路进行修改,在 /wp-includes/cron.php 中找到一段代码,看起来是超时时间控制的代码,代码如下:
 
  $cron_request = apply_filters( ‘cron_request’, array(
  
  ‘url’ => add_query_arg( ‘doing_wp_cron’, $doing_wp_cron, site_url( ‘wp-cron.php’ ) ),
  
  ‘key’ => $doing_wp_cron,
  
  ‘args’ => array(
  
  ‘timeout’ => 0.01,
  
  ‘blocking’ => false,
  
  ‘sslverify’ => apply_filters( ‘https_local_ssl_verify’, false )
  //phpfensi.com
  )
  
  ) );
  先将timeout 的0.01修改为30.00,这样有30秒的空档时间,应该是肯定可以满足条件了,修改完成之后,再次发布一篇文章进行测试,发现依然没有发布成功.
 
  第三种可能性:
 
  前面两种方式都失败了,怀疑是否程序有bug,查找网上其他人的经验,发现了一个插件 WP Missed Schedule,安装成功并启用之后,问题解决,这个问题证明了,wordpress还是各种插件好用啊.
 
 

(编辑:海南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!