2011-04-25 100 views
2
max_execution_time = 30  ; Maximum execution time of each script, in seconds 
max_input_time = 60 ; Maximum amount of time each script may spend parsing request data 
;max_input_nesting_level = 64 ; Maximum input variable nesting level 
memory_limit = 128M  ; Maximum amount of memory a script may consume (128MB) 

在默認128MB,一切正常PHP - 內存限制

但是,當我編輯的php.ini這樣

memory_limit = 128000000  ; Maximum amount of memory a script may consume (128MB) 

我得到了我注意到:

致命錯誤:讓內存大小262144

128000000 @ 128MB或apache不知道128000000

+2

請在php.ini中顯示您正在使用的* exact *行。 – 2011-04-25 09:24:11

+6

如果有效,請不要修復它! – Phliplip 2011-04-25 09:25:18

+0

我想知道正確的方法來設置這個值128M或128000000或兩種方式都是正確的 – Chameron 2011-04-25 09:35:44

回答

4

我們不知道php ini解析器如何處理您的請求,當您不使用他們的標準方式在末尾使用字母來編寫內存大小時。

有一點是肯定的,儘管它不會加起來到262144,128 000 000將永遠不會是128MB,但更像122MB,因爲我相信你知道1MB = 1024 * 1024字節!

如果你真的需要你在做什麼,你可能想嘗試:128000000b(注意數字末尾的'b'),但我不確定PHP ini解析器開發人員曾經認爲有人會拋出字節他們。

3

正確的方法是通過如果給一個整數是把它解釋爲字節使用單元(128M

0

的默認行爲。請參閱http://php.net/manual/en/ini.core.php。正如Yahel指出的那樣1MB = 1024字節。所以,如果你想要128MB,你要麼寫入「128M」或「134217728」

還要記住,你可以隨時檢查你的內存限制設置爲phpinfo();如果你的php沒有用--enable-memory-限制在配置行中(如果您使用的是早於5.2.1的版本),那麼這些都不起作用。

0

你應該寫如下。它應該是8的倍數 memory_limit = 128M;腳本可能消耗的最大內存量(128MB)

它默認以MB爲單位的內存。