這兩天網(wǎng)站CPU天天100+的,過一會就掛了,原來是wp-cron.php文件造成的。
wordpress的定時任務(wù)功能我們還是經(jīng)常要用到的,例如wordpress的定時備份,定時發(fā)布文章等都需要用到wordpress的定時任務(wù)功能,而在wordpress中,是靠wp-cron.php來實(shí)現(xiàn)這些功能的。但是昨天本人網(wǎng)站就出現(xiàn)CPU嚴(yán)重超標(biāo)的情況,導(dǎo)致被主機(jī)商停機(jī),好不容易聯(lián)系上客服,被告知是由于wp-cron.php文件造成的。原來,在使用了wp-super-cache緩存插件的時候,后臺會有很多wp-cron.php的調(diào)用,每一次訪問頁面都會調(diào)用。這樣就容易出現(xiàn)cpu超標(biāo)的情況了。
WP-Cron的原理是這樣的:雖然用戶不能通過crond設(shè)置計(jì)劃任務(wù),但網(wǎng)站隨時可能會有用戶在點(diǎn)擊,只要在用戶點(diǎn)擊的時候,判斷當(dāng)時是否有需要運(yùn)行的后臺任務(wù),如果則在后臺運(yùn)行該任務(wù),就可以實(shí)現(xiàn)類似crond的效果。雖然這么好用,不過占用這么高的系統(tǒng)資源我就不得不禁用它了。
禁用WP-Cron很簡單,編輯wp-config.php,加入一下一行:
define('DISABLE_WP_CRON', true);
當(dāng)然了,如果你的主機(jī)可以設(shè)定crontab,你可以在你后臺系統(tǒng)的crontab文件里,增加下面的代碼:
*/15 * * * * YOUR_USER /usr/bin/wget -q --post-data '' http://YOUR_SITE/wp-cron.php?doing_wp_cron -O /dev/null
上面配置指示,每15分鐘,調(diào)用wget命令訪問站點(diǎn)的wp-cron.php文件,post-data參數(shù)指示wget用POST方法,而不是GET方法,這樣可以避免WP-Super-Cache這樣的緩存插件影響后臺任務(wù)的正確執(zhí)行,但post-data傳輸?shù)臄?shù)據(jù)必須是空內(nèi)容,否則wp-cron.php會拒絕執(zhí)行。
或者系統(tǒng)的crontab中添加
0,30 * * * * php -q /path_to_your_website/public_html/wp-cron.php
文章來源地址http://www.zghlxwxcb.cn/news/detail-422863.html
文章來源:http://www.zghlxwxcb.cn/news/detail-422863.html
到了這里,關(guān)于wordpress定時任務(wù)(wp-cron.php)造成主機(jī)CPU比較高的解決辦法的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!