在運行PHP法度,凡是會碰到“Fatal Error: Allowed memory size of xxxxxx 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, 則履行:
httpd restart
有些景象下,你可能不被容許私批改php.ini。比如若是你購買了虛擬主機辦事,然則你的辦事商確禁止你批改這個文件。那么,你可以須要推敲用其他辦法來增長memory_limit的值。
辦法2: .htaccess
申明: 這種辦法只有在php以Apache模塊來履行時才生效。 在你的網站的根目次下找到“.htaccess”文件,若是沒有,可以本身創建一個。然后把以下設備放入此中
php_value memory_limit 128M ; 可以將128M改為任何你想設置的值
辦法3: 運行時批改php的內存設置
在你的php代碼中增長以下號令行即可。
ini_set(""memory_limit"",""128M"");
memory_limit批改失敗
若是你應用虛擬主機,有可能會呈現memory_limit的值批改失敗。這個須要接洽你的辦事商看怎么處理懲罰,凡是他們限制了可以設置的最大值或者底子就不容許你批改。若是他們的景象真的無法滿足你的請求,那么你可能要推敲換一個主機辦事商。
Copyright@ 2011-2016 版權所有:大連千億科技有限公司 遼ICP備11013762-3號 google網站地圖 百度網站地圖 網站地圖
公司地址:大連市沙河口區中山路692號辰熙星海國際2317 客服電話:0411-39943997 QQ:2088827823 37482752
法律聲明:未經許可,任何模仿本站模板、轉載本站內容等行為者,本站保留追究其法律責任的權利! 隱私權政策聲明