- 工信部備案號 滇ICP備05000110號-1
- 滇公安備案 滇53010302000111
- 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證 B1.B2-20181647、滇B1.B2-20190004
- 云南互聯(lián)網(wǎng)協(xié)會(huì )理事單位
- 安全聯(lián)盟認證網(wǎng)站身份V標記
- 域名注冊服務(wù)機構許可:滇D3-20230001
- 代理域名注冊服務(wù)機構:新網(wǎng)數碼
wordpress定時(shí)任務(wù)(wp-cron.php)造成主機CPU比較高的解決辦法
網(wǎng)站CPU天天100+的,過(guò)一會(huì )就掛了,原來(lái)是wp-cron.php文件造成的。
wordpress的定時(shí)任務(wù)功能我們還是經(jīng)常要用到的,例如wordpress的定時(shí)備份,定時(shí)發(fā)布文章等都需要用到wordpress的定時(shí)任務(wù)功能,而在wordpress中,是靠wp-cron.php來(lái)實(shí)現這些功能的。但是昨天本人網(wǎng)站就出現CPU嚴重超標的情況,導致被主機商停機,好不容易聯(lián)系上客服,被告知是由于wp-cron.php文件造成的。原來(lái),在使用了wp-super-cache緩存插件的時(shí)候,后臺會(huì )有很多wp-cron.php的調用,每一次訪(fǎng)問(wèn)頁(yè)面都會(huì )調用。這樣就容易出現cpu超標的情況了。
WP-Cron的原理是這樣的:雖然用戶(hù)不能通過(guò)crond設置計劃任務(wù),但網(wǎng)站隨時(shí)可能會(huì )有用戶(hù)在點(diǎn)擊,只要在用戶(hù)點(diǎn)擊的時(shí)候,判斷當時(shí)是否有需要運行的后臺任務(wù),如果則在后臺運行該任務(wù),就可以實(shí)現類(lèi)似crond的效果。雖然這么好用,不過(guò)占用這么高的系統資源我就不得不禁用它了。
禁用WP-Cron很簡(jiǎn)單,編輯wp-config.php,加入一下一行:
代碼如下:
define('DISABLE_WP_CRON', true);
當然了,如果你的主機可以設定crontab,你可以在你后臺系統的crontab文件里,增加下面的代碼:
代碼如下:
*/15 * * * * YOUR_USER /usr/bin/wget -q --post-data '' http://YOUR_SITE/wp-cron.php?doing_wp_cron -O /dev/null
上面配置指示,每15分鐘,調用wget命令訪(fǎng)問(wèn)站點(diǎn)的wp-cron.php文件,post-data參數指示wget用POST方法,而不是GET方法,這樣可以避免WP-Super-Cache這樣的緩存插件影響后臺任務(wù)的正確執行,但post-data傳輸的數據必須是空內容,否則wp-cron.php會(huì )拒絕執行。
或者系統的crontab中添加
代碼如下:
0,30 * * * * php -q /path_to_your_website/public_html/wp-cron.php
售前咨詢(xún)
售后咨詢(xún)
備案咨詢(xún)
二維碼
TOP