【问题标题】:Need to increase PHP memory_limit for specific directory NOT entire server需要为特定目录而不是整个服务器增加 PHP memory_limit
【发布时间】:2010-12-24 21:24:07
【问题描述】:

我在 plesk9/centOS64 上运行 wordpress 2.8.6 作为 fcgi,safe_mode=on。 wordpress 是由 installatron 安装的。正在从 /etc/etc/php.ini 读取 php.ini

我需要增加 php 的 memory_limit,因为当我尝试升级大多数 WP 插件时,我得到了很多 mod_fcgid: stderr: PHP Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 40961 bytes) in /var/www/vhosts/domain.com/httpdocs/wp-content/plugins/blah/blah.php on line X

按照http://www.sakinshrestha.com/wordpress/fix-php-fatel-error-for-wordpress/ 上的说明,我尝试创建一个 php.ini 和一个 htaccess 文件并将其放在 /var/www/vhosts/domain.com/httpdocs/wp-content/ 中。它没有用。我没有尝试同时使用这两个文件。每次我创建这些文件时,apache 都会重新启动。

我认为无法使用每个文件夹的设置可能是因为我使用的是 fcgi。我将域切换为使用 mod_php。现在,当我尝试升级插件时,我得到一个询问 FTP 登录信息的框(如 http://www.chrisabernethy.com/why-wordpress-asks-connection-info/ 所示)。我输入了正确的 FTP 登录信息,但是当我点击继续时,服务器会尝试让我下载 update.php。

所以现在我有两个问题:

1) 如何仅在 FCGI 下增加该文件夹的 memory_limit?

2) 我如何切换到 mod_php 并将 WP 配置为不需要 FTP 连接信息?我尝试按照上面最后一个链接中的说明进行操作,但 <?php echo(exec("whoami")); ?>PHP Warning: exec() has been disabled for security reasons in /var/www/vhosts/domain.com/httpdocs/whoami.php on line 3 阻止。我打开了 safe_mode=off 但它没有任何区别。

啊啊啊啊!!

【问题讨论】:

  • 在这一点上,我决定只为这个域而不是目录增加它。但是我真的不想为整个服务器增加它...

标签: php apache wordpress centos plesk


【解决方案1】:

为什么在 wp-content 中?尝试在 /var/www/vhosts/domain.com/httpdocs 中创建一个 php.ini。

另外,您是否编辑了 wp-settings.php?这是默认值:

if ( !defined('WP_MEMORY_LIMIT') )
    define('WP_MEMORY_LIMIT', '32M');

【讨论】:

  • 谢谢。我将其更改为:if ( !defined('WP_MEMORY_LIMIT') ) define('WP_MEMORY_LIMIT', '64M');,但我仍然得到``mod_fcgid:stderr:PHP 致命错误:在 /var/www/vhosts/ 中允许的内存大小为 33554432 字节已用尽(尝试分配 4344 字节)在重新启动 apache 之后。 . 顺便说一句,在 wp-config 或 wp-settings 中更改此值更好吗?
  • 在 wp-content 中这样做是因为那里只有需要更多内存的脚本。
  • 我不是 PHP 专家,但我仍然想知道它是否可以这样工作。也许其他人可以解释。我想 PHP 应用程序不会根据各个页面的设置动态更改内存分配,而是在应用程序加载时完成一次,这意味着它必须在您的应用程序根目录中完成。
  • 我的印象是这个设置可以用来指定WP使用的最大内存php.ini中指定的上限
【解决方案2】:

从 PHP 5.3 开始,您可以使用 .user.ini 作为每个用户的配置文件。

最好的祝愿,
费边

【讨论】:

  • 请记住,您必须恢复到 (f)cgi。来自文档:“这些文件仅由 CGI/FastCGI SAPI 处理”
  • 确实,这是针对他的第一个问题。我忘了指出这一点。谢谢。
  • 仅供参考,我已恢复为 fcgi。
  • 那是按域。只需将 .user.ini 放入您的域 webroot。
  • .user.ini 被忽略。值得注意的是,.user.ini 仅在使用 CGI/FCGI 时读取,以供将来参考。 mod_apache 要求指令位于 .htaccess 中。
猜你喜欢
  • 1970-01-01
  • 2019-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-12
  • 2018-10-27
  • 1970-01-01
  • 2013-01-11
相关资源
最近更新 更多