问题描述
我正在为一个摄影师建立一个网站,上传了当今数码相机通常很大的图片。图像相当密集,尤其是创建缩略图的图像操作。
所以我想在 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 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。