如何修改PHP的memory limit限制

2021-08-09 22:52:06 字數 1672 閱讀 5532

在執行php程式,通常會遇到「fatal error: allowed memory size of ****** bytes exhausted」的錯誤, 這個意味著php指令碼使用了過多的記憶體,並超出了系統對其設定的允許最大記憶體。解決這個問題,首先需要檢視你的程式是否分配了過多的記憶體,在程式沒有問題的情況下,你可以通過一下方法來增加php的記憶體限制(memory_limit)。

檢查php的記憶體限制值

為了檢視這個值,你需要建立乙個空的php檔案,比如view-php-info.php。然後將一下**貼到裡面。

<?php phpinfo(); ?>

將這個指令碼放到你的web伺服器上,然後在瀏覽器中呼叫它。這時你可以看到你的php環境配置的資訊,其中有一部分是關於「memory_limit」的, 如下圖:

注:你可以用這種方法來檢視php的其他引數設定,不僅僅是memory_limit

memory_limit應該設為多少?

這個完全依賴於你的應用的要求。比如wordpress,執行起核心**需要32mb。drupal 6則要求這個值最小為16mb,並推薦設定為32mb。如果你又安裝不少的外掛程式(plugins),尤其是那些要進行影象處理的模組,那麼你可能需要128mb或更高的記憶體。

如何設定memory_limit

方法1: php.ini

最簡單或常用的方法是修改php.ini

1.首先找到對你的**生效的php.ini檔案 由於有多個地方都可以設定php的引數,找到正確的配置檔案,並進行更改是首先要做的一步。如果你上面的方法建立了php檔案來檢視其配置引數,則你可以找到「loaded configuration file」這一項,以下是個例子:

對於linux使用者,你可以通過執行「php -i | grep loaded configuration file」來找到對應的配置檔案。而windows使用者,你可以嘗試修改你的php安裝目錄下的php.ini。

2.編輯php.ini 在php.ini中,找到「memory_limit」這一項,如果沒有,你可以在檔案的尾部自己增加這個引數。以下是一些設定範例

memory_limit = 128m ; 可以將128m改為任何你想設定的值

儲存檔案

3.重啟web 伺服器 如果是web伺服器使用apache, 則執行:

有些情況下,你可能不被允許私修改php.ini。比如如果你購買了虛擬主機服務,但是你的服務商確禁止你修改這個檔案。那麼,你可以需要考慮用其他方法來增加memory_limit的值。

方法2: .htaccess

php_value memory_limit 128m ; 可以將128m改為任何你想設定的值

方法3: 執行時修改php的記憶體設定

在你的php**中增加以下命令列即可。

ini_set('memory_limit','128m');

memory_limit修改失敗

如果你使用虛擬主機,有可能會出現memory_limit的值修改失敗。這個需要聯絡你的服務商看怎麼處理,通常他們限制了可以設定的最大值或者根本就不允許你修改。如果他們的環境真的無法滿足你的要求,那麼你可能要考慮換乙個主機服務商。

PHP 如何修改網域名稱指定的根目錄

修改網域名稱指定的檔案根目錄需要修改nginx的配置檔案 第一步 連線xshell 第二步 進入根路徑找到nginx的配置檔案 cd 進入根目錄 cd usr 進入usr檔案 cd local 進入local檔案 cd nginx 進入nginx檔案 cd conf 進入conf檔案 cd vhos...

php 中文鍵名 問題,php陣列鍵名如何修改

php修改陣列鍵名的方法 首先建立乙個php示例 檔案 然後建立陣列 接著定義乙個foo方法 最後通過 array combine 等函式實現修改陣列鍵名的功能即可。php修改陣列鍵名 ar array array 1 a 2 50,3 60,4 long 5 zzz 6 kkk 7 ooo arr...

PHP 如何修改網域名稱的指定的根目錄

修改網域名稱指定的檔案根目錄需要修改nginx的配置檔案 第一步 連線xshell 第二步 進入根路徑找到nginx的配置檔案 cd 進入根目錄 cd usr 進入usr檔案 cd local 進入local檔案 cd nginx 進入nginx檔案 cd conf 進入conf檔案 cd vhos...