遇Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 133431312 bytes)解決
(一)報(bào)錯(cuò)提示:
(二)原因:
php.ini中的內(nèi)存分配的問(wèn)題,默認(rèn)php代碼能夠申請(qǐng)到的最大內(nèi)存字節(jié)數(shù)就是134217728 bytes,如果代碼執(zhí)行的時(shí)候再需要更多的內(nèi)存,就會(huì)報(bào)錯(cuò)了,于是就將php.ini文件中的配置改了一下。
(三)解決方法:
方法一: 修改php.ini(推薦)
進(jìn)入php.ini文件,將其中的memory_limit 由原本的128M改為256M
方法二: 在程序里面添加如下語(yǔ)句
ini_set(”memory_limit”, ”256M”);
方法三: 添加如下內(nèi)容
php_value memory_limit 256M
但是以上的方法其實(shí)都不能從根本上解決問(wèn)題,因?yàn)橐粋€(gè)php腳本一次請(qǐng)求的內(nèi)存空間就要超過(guò)128M,那不管以后將memory_limit設(shè)置成多大,以后肯定有出問(wèn)題的時(shí)候。究其原因,是在編碼時(shí),僅僅對(duì)變量賦值卻從來(lái)沒(méi)有 unset ($var) 過(guò)。導(dǎo)致了內(nèi)存占用越來(lái)越多,所以以后一個(gè)變量不再使用之后,一定要記得unset掉它,如下:
方法四: 根據(jù)報(bào)錯(cuò)提示中的路徑找到對(duì)應(yīng)文件(index.php)的指定行數(shù) 67行 ,可以發(fā)現(xiàn)是與$ num 變量相關(guān)的,所以因?yàn)樵O(shè)置了$ num 所以我們要把它unset掉:
在文件的末行輸入 unset($num); 即可:
修改完配置文件之后一定要重啟才會(huì)生效。
會(huì)員登錄
賬號(hào)登錄還沒(méi)有賬號(hào)?立即注冊(cè)