PHP 的 Windows 缓存扩展

PHP 的 Windows 缓存扩展

我刚刚将一个网站从 Linux 转移到 Windows,然后收到奇怪的致命错误消息。我的 Linux PHP 内存限制为 256MB,但从未出现过任何“内存不足”致命错误。

现在在 IIS 上我有相同的内存限制,但我收到了太多

PHP Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 32508940 bytes) in C:\...\functions.php on line 0

我尝试增加(400MB)看看会发生什么,这就是我得到的结果

PHP Fatal error:  Allowed memory size of 419430400 bytes exhausted (tried to allocate 65013862 bytes) in C:\....\dbfunctions.php on line 1073741824

奇怪,这是同一个应用程序,相同的内存限制设置。同样奇怪的是,第二个错误显示“在第 1073741824 行”,但哇,该文件有 500 行。这是 Windows/IIS/PHP 问题吗?

我的配置:IIS 8.0、PHP 5.3.28、PHP 处理程序 php-cgi.exe

答案1

PHP 的 Windows 缓存扩展

似乎有大量问题都围绕着 PHP 的 Windows 缓存扩展,它为 php 设置了硬内存限制。

Microsoft IIS.net 文章

有示例和博客文章表明删除 wincache 可以解决问题,但这可能会对网站的性能产生不利影响。

与 wincache 相关的类似问题示例

在 IIS 中管理 PHP 内存

  • php.ini- 位于根文件夹中。在 TextPad 中编辑并更改 momory_limit 的值。如果 4M 不够,则最多可设置为 8M,等等。

  • admin.php(如果你的错误出现在这里)后面添加一行内存限制,ini_set 'memory_limit', '12M' 如果你想添加 12MB 内存

  • 您可以添加一行到.htaccessphp_value memory_limit 32M

  • wp-config.php可以控制内存。你输入一行,如下所示

    define('WP_MEMORY_LIMIT', '32M');

信息取自 phpbb.com 和 technet.microsoft.com

相关内容