新聞中心
你的插件不工作。您的網(wǎng)站未加載。您不斷看到“Allowed memory size exhausted”錯誤,并且一直說增加您的php內(nèi)存限制。那是什么,你如何解決它?

PHP內(nèi)存限制的存在是為了阻止占用RAM的資源使您的網(wǎng)站崩潰。但有時它也可能導(dǎo)致問題,例如當(dāng)您安裝需要一點額外功能的插件并最終切斷對您網(wǎng)站的訪問時。
當(dāng)您因內(nèi)存不足而遇到白屏死機(jī)時,您需要立即修復(fù)此問題。讓我們來看看PHP內(nèi)存限制是什么,以及如果達(dá)到資源上限如何解決它。
什么是PHP內(nèi)存限制?
PHP內(nèi)存限制設(shè)置您網(wǎng)站上的任何腳本可以使用的最大內(nèi)存量。但這究竟是什么意思?
您的網(wǎng)站由服務(wù)器提供支持,這些服務(wù)器只是用于保持網(wǎng)站后端運行的專用計算機(jī)。與普通計算機(jī)一樣,它們使用處理器、存儲和RAM(也稱為內(nèi)存)等組件。
RAM是服務(wù)器最重要的部分之一。每個程序和應(yīng)用程序都會占用一點內(nèi)存。程序越密集,占用的內(nèi)存就越多。當(dāng)您的內(nèi)存不足時,您的網(wǎng)站將運行緩慢甚至拒絕加載。
Web應(yīng)用程序(例如WordPress插件)是可能占用服務(wù)器內(nèi)存的眾多事物之一。通常,這些應(yīng)用程序占用的空間非常小,除非您的主機(jī)給您的內(nèi)存非常少,否則您永遠(yuǎn)不會遇到任何問題。
但是對于任何PHP應(yīng)用程序的腳本可以在您的服務(wù)器上占用多少內(nèi)存也有一個硬性上限。當(dāng)其中一個腳本超過限制時,您就會開始遇到問題。
您會看到一個帶有錯誤的白屏,甚至可能會禁止您訪問整個網(wǎng)站。
為什么有內(nèi)存限制?
想象一下,您的服務(wù)器出了點問題。也許一個程序陷入無限循環(huán)并不斷占用越來越多的內(nèi)存,或者攻擊者誘騙您安裝運行惡意腳本的東西以占用您的所有資源。
當(dāng)PHP進(jìn)程失控時,內(nèi)存限制會在它們導(dǎo)致整個服務(wù)器崩潰或耗盡當(dāng)月所有分配的資源之前對其進(jìn)行硬性阻止。
大多數(shù)合法的PHP腳本都很小。每個單獨的腳本應(yīng)該只占用少量的RAM,除非你有一個不尋常的程序需要在一個腳本中比大多數(shù)程序作為一個整體占用更多的資源。這些類型的插件當(dāng)然存在,但很少見。
如果您的內(nèi)存不足,則很有可能存在損壞或惡意的PHP程序,因此會出現(xiàn)內(nèi)存限制錯誤。
但有時你確實在使用需要額外內(nèi)存的大型插件。一些Web主機(jī)還將PHP內(nèi)存限制設(shè)置得非常低,因此即使您沒有安裝異常耗電的應(yīng)用程序,也會導(dǎo)致出現(xiàn)錯誤。
無論哪種方式,您都會很快遇到內(nèi)存耗盡錯誤。
內(nèi)存耗盡錯誤
所以你遇到了內(nèi)存耗盡錯誤。您可能會在整個站點中或在執(zhí)行某些功能(例如提交表單)時遇到帶有錯誤消息的白屏。
出現(xiàn)在WordPress中的內(nèi)存限制耗盡錯誤
這是一個嚴(yán)重的問題,尤其是當(dāng)它影響您的整個網(wǎng)站時。過去的每一個小時都會有很多迷路的游客。
罪魁禍?zhǔn)卓赡苁且粋€非常大或配置錯誤的插件。因為WordPress插件是用PHP編碼的,所以它們受PHP內(nèi)存限制的限制。
您可以通過一一禁用插件來找到導(dǎo)致問題的插件,直到重新訪問您的站點。一旦你確定了它,檢查文檔并查看它是否說明它需要運行多少內(nèi)存。
如果沒有跡象表明它應(yīng)該是一個非常強大的插件,您可能需要向插件開發(fā)人員提交一張票,因為它可能是錯誤的。請記住,PHP內(nèi)存限制僅影響單個腳本,而不影響整個插件。因此,腳本很有可能陷入無限循環(huán)或其他故障。
這個問題也可能在你身上。也許您的內(nèi)存限制設(shè)置得太低,因此只有最小的插件才能正確運行?;蛘?,也許您正在嘗試安裝一個插件,該插件要求您將限制提高到比正常水平更高的水平。
無論哪種情況,您都應(yīng)該嘗試增加PHP內(nèi)存限制?,F(xiàn)在讓我們向您展示如何做到這一點。
如何在WordPress中增加PHP內(nèi)存限制
在做任何事情之前,有一種簡單的方法可以檢查您當(dāng)前的PHP內(nèi)存限制,而無需挖掘任何文件。如果您運行的是WordPress 5.2或更高版本,請轉(zhuǎn)到后端的工具 > 站點健康運行狀況。
如果看不到,請安裝運行Health Check & Troubleshooting。
在WordPress中查看站點健康信息
在信息選項卡下,您將看到您的PHP內(nèi)存限制。如果它已經(jīng)設(shè)置得相當(dāng)高,那么您的一個插件可能只是被破壞了。
但是,如果您發(fā)現(xiàn)它非常低,則需要通過編輯wp-config.php文件來增加它。
這并不總能解決問題。最終,PHP內(nèi)存限制由您的Web主機(jī)設(shè)置。有時,您的站點設(shè)置為使用的資源少于主機(jī)提供的資源,調(diào)整文件可以解決此問題。但是如果他們的硬編碼限制太低,無論你手動設(shè)置多高,你都無法真正增加它。
但值得一試,所以讓我們現(xiàn)在去編輯那個文件。
PHP內(nèi)存限制是多少?
不同的服務(wù)器提供商所設(shè)置的限制都不太一樣,稍微良心的服務(wù)器提供商可能會給出256MB的默認(rèn)PHP內(nèi)存限制。這對于99%的WordPress插件來說應(yīng)該綽綽有余,而且實際上遠(yuǎn)遠(yuǎn)超過了大多數(shù)插件所應(yīng)采用的。
它可能仍然值得通過并確保它沒有在WordPress的設(shè)置中無意中設(shè)置得太低。有可能某些東西改變了數(shù)量并減少了您可以訪問的資源數(shù)量。
如何通過FTP更改PHP內(nèi)存限制
要編輯wp-config.php文件,您需要使用FTP或SFTP訪問您的站點。這允許您編輯影響站點運行方式的敏感內(nèi)部文件。
你只會改變一條線,所以應(yīng)該很容易。首先安裝FileZilla或您選擇的其他FTP客戶端。它是免費的,所以不用擔(dān)心。在開始之前,您還應(yīng)該備份您的網(wǎng)站。在編輯核心文件時很容易意外破壞某些東西。
打開FileZilla并輸入您的憑據(jù)。片刻之后,您應(yīng)該連接到您的站點。
單擊公共文件夾并找到wp-config.php。如果找不到public或public-html,它可能被稱為root、www或您的網(wǎng)站名稱。
在FileZilla中查找wp-config
打開wp配置。注意不要編輯PHP內(nèi)存限制行以外的任何內(nèi)容,因為這是一個敏感文件,可能會破壞您的網(wǎng)站。瀏覽它,直到找到這一行:define(‘WP_MEMORY_LIMIT’, ‘256M’);
出現(xiàn)在wp-config中的WP內(nèi)存限制
更改此處列出的數(shù)字,保存文件,然后關(guān)閉FileZilla。
如何在cPanel中更改PHP內(nèi)存限制
有些主機(jī)不允許您通過FTP編輯文件。相反,他們可能會讓您訪問cPanel。如果您遇到這種情況,請不要擔(dān)心——您也可以通過這種方式更改您的PHP內(nèi)存限制。
第一步:使用主機(jī)提供的憑據(jù)登錄cPanel。在主屏幕上,您將看到一個帶有選擇PHP版本按鈕的軟件部分。
在cPanel中選擇PHP版本
單擊它,然后在屏幕頂部,您將看到Switch to PHP options。向下滾動,直到看到帶有下拉菜單的memory_limit 。單擊它并將其更改為您想要的設(shè)置。單擊應(yīng)用,您就完成了。
不是每個人都會有選擇PHP版本選項。相反,您可能會看到MultiPHP Ini Editor 。如果是這種情況,您的步驟會有所不同。
cPanel中的MultiPHP Ini編輯器
您需要單擊它,然后在下一個窗口中,在Configure PHP INI basic settings下,您應(yīng)該打開下拉列表并選擇您的域。找到memory_limit部分并輸入您想要的數(shù)字。單擊應(yīng)用以保存您的更改。
您也可以嘗試使用cPanel的文件管理器。這與通過FTP訪問您的站點非常相似。在主頁的文件部分下,單擊文件管理器。找到您的public/public-html文件夾(或任何可能被稱為的文件夾)并打開wp-config.php。
找到上一節(jié)中概述的WP_MEMORY_LIMIT行,并將數(shù)字更改為您想要的。保存您的更改并確保應(yīng)用它們,這就是您需要做的所有事情。
PHP內(nèi)存限制應(yīng)該是多少?
當(dāng)您更改內(nèi)存限制時,您的第一個沖動可能是將其設(shè)置為900MB 或類似的值——盡可能高。但這實際上可能是一個非常糟糕的主意。
如果您網(wǎng)站上的腳本中斷,它可能會迅速失控并使您的整個服務(wù)器崩潰。即使您的站點托管在功能強大的硬件上,一個腳本占用所有內(nèi)存仍可能導(dǎo)致嚴(yán)重問題。
錯誤配置的腳本異常繁重,但沒有破壞到導(dǎo)致問題的程度,也可能被忽視。大多數(shù)PHP腳本都很小,內(nèi)存限制錯誤是后端出現(xiàn)問題的警告信號。將其設(shè)置得太高,您可能會在不知不覺中搞砸腳本,使您的網(wǎng)站陷入困境。
您應(yīng)該將PHP內(nèi)存限制設(shè)置得盡可能低,同時仍然允許您的站點正常運行。
128MB是一個很好的基準(zhǔn)。這是相當(dāng)大的內(nèi)存量,可以處理大多數(shù)密集型插件。如果您知道您將需要一些額外的功能,那么256MB甚至可以涵蓋最重的插件。如果你確定你有一個真正的強者,512MB是你應(yīng)該設(shè)置的絕對最大值。在90%的情況下,您永遠(yuǎn)不需要將內(nèi)存限制提高到256 MB以上。
如果更改內(nèi)存限制不起作用怎么辦?
如果在編輯您的PHP文件后您仍然遇到內(nèi)存錯誤,則問題之一是兩個問題之一:您的主機(jī)分配的資源很少,或者您的服務(wù)器上有一個PHP腳本占用了太多的內(nèi)存。
同樣,您應(yīng)該檢查并禁用您的插件,直到您確定罪魁禍?zhǔn)?。使?28-256MB內(nèi)存,沒有插件應(yīng)該占用這么多空間而不在文檔中的某處提及它。禁用它并通知插件作者發(fā)生了什么。
即使在所有插件都被禁用后仍然遇到錯誤?一定有一些沖突或其他PHP應(yīng)用程序?qū)е铝藛栴}。這超出了您自己能夠處理的范圍,因此請向您的網(wǎng)絡(luò)托管服務(wù)商尋求幫助。
如果問題根本不是插件,那么責(zé)任可能在于您的主機(jī)將內(nèi)存限制設(shè)置得太低。您可能正在使用共享主機(jī),它因分配非常少量的內(nèi)存而臭名昭著 – 這是可以理解的,因為如果一個站點使用過多的RAM,它會使整個系統(tǒng)陷入數(shù)十個其他網(wǎng)站的困境。
您在這里唯一的選擇是升級到提供更多資源的計劃。這可能最終代價高昂,特別是如果您只是想在新站點上安裝一個密集的插件。如果您還沒有很多訪客,那么從升級中獲得的所有其他資源都不會對您有太大幫助。
您還可以切換到提供更多內(nèi)存的主機(jī)。
小結(jié)
PHP內(nèi)存限制的存在有一個非常正當(dāng)?shù)脑颍耗幌M髅ミM(jìn)程占用比預(yù)期更多的RAM。但是,當(dāng)您在使用合法插件時達(dá)到極限并遇到白屏死機(jī)時,這可能會很煩人。
最后,取決于您的主機(jī)您可以訪問多少PHP內(nèi)存。如果他們設(shè)置的標(biāo)準(zhǔn)太低,就不可能提高。
但是,有時您的網(wǎng)站使用的資源會比您真正可以訪問的資源少。在這種情況下,可以增加你的記憶力。嘗試將其設(shè)置為128或256MB,因為您不希望它太高。
如果這些方法都不起作用,則可能是缺少分配的資源導(dǎo)致了問題,而不是需要更改的設(shè)置。聯(lián)系您的主機(jī)并詢問如何獲得更多,或切換到提供更大內(nèi)存的主機(jī),它可以為您提供比您需要的更多內(nèi)存。
分享標(biāo)題:如何提高WordPress中的PHP內(nèi)存限制
網(wǎng)頁網(wǎng)址:http://m.5511xx.com/article/ccshooe.html


咨詢
建站咨詢
