問題描述
我正在為一個攝影師建立一個網站,上傳了當今數碼相機通常很大的圖片。影像相當密集,尤其是建立縮圖的影像操作。
所以我想在 256MB 以上的管理上提高記憶體限制 – 這怎麼做?我允許 CGI 和 PHP 使用高達 1 千兆位元組,但 wordpress 總是將記憶體減少到 256MB 。任何想法如何修復在客戶端需要能夠 auto-update?
更新:From WordPress 3.2 ongoing the maximum memory limit in WordPress will be configure-able again 。
最佳解決方案
理論上,編輯你的 config.php 並在 wp-settings.php 包含之前新增這一行。
define('WP_MEMORY_LIMIT', '256M');
應該將您的 WordPress 的記憶體限制提高到 256MB 或您設定的任何值。這將在旁邊工作。但是,作為 sorich87 pointed out,幾乎沒有什麼功能可以用硬編碼的 256 MB 限制來改變這個設定。
破解或不駭客
有一點擔心,WP_MEMORY_LIMIT 是我遇到的最奇怪的 WP 設定之一。如果您檢查/wp-includes/default-constants.php,您會發現這個設定:
// set memory limits
if ( !defined('WP_MEMORY_LIMIT') ) {
if( is_multisite() ) {
define('WP_MEMORY_LIMIT', '64M');
} else {
define('WP_MEMORY_LIMIT', '32M');
}
}
我從來沒有意識到 WP 會將其預設記憶體使用設定為低,直到我在 WP codex 中找到這個:
WordPress will automatically check if PHP has been allocated less memory than the entered value before utilizing this function. For example, if PHP has been allocated 64MB, there is no need to set this value to 64M as WordPress will automatically use all 64MB if need be.(source)
那個解釋是緩解的。然而,硬編碼 @ini_set('memory_limit', '256M'); 每次使用 WP 執行功能需要更多的記憶體從來沒有提到過。事實上,我沒有發現關於 WP codex 這個模糊行為的解釋。由於絕大多數非 user-related 功能都沒有被記錄在案,或者在抄本中沒有明確的解釋。
雖然這種設定在大多數情況下都能很好地工作,但是在最大記憶體設定較低的伺服器上,或者在您的情況下,記憶體使用量更高,這些功能將無法使用。
直到 WP 傢伙解決這個問題,我認為你唯一的解決方案是修改核心。您可能會發現由 hakre 編寫的 this post 有趣閱讀。他還在 Trac 中提交了一個 patch recommendation 。修補程式檔案的上一個連結可能會幫助您查詢使用此設定的功能列表。
編輯:
這是我曾經給過的最愚蠢的答案,因為 I give a link to your own post(只是意識到這個 OP 名稱在 2 天之後就是 hakre):D
編輯 2:
正如提到的評論,這已經是 fixed by 3.2 release
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。