問題描述

我正在為一個攝影師建立一個網站,上傳了當今數碼相機通常很大的圖片。圖像相當密集,尤其是創建縮略圖的圖像操作。

所以我想在 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。