VirtualAlloc()失败:[0x00000008]没有足够的存储空间可用于处理此命令

时间:2017-06-12 05:22:36

标签: php wordpress windows apache

我一直面对这个错误很长一段时间,我的生产环境在Windows 2008 R2企业平台上运行Apache 2.4和php7。

我的错误日志中充满了这些行 VirtualAlloc()失败:[0x00000008]没有足够的存储空间可用于处理此命令。 VirtualFree()失败:[0x000001e7]尝试访问无效地址

经过一段时间后会导致500错误,之后我必须重新启动服务器才能正常运行一段时间。

请帮我解决这些问题我试图从php和wordpress结束更新内存但仍然没有帮助

5 个答案:

答案 0 :(得分:0)

您的项目可能未在合适的体系结构上设置。

您的PHP是32位吗?检查PHP_INT_SIZE常量以找出答案。

print_r(PHP_INT_SIZE); # 4 == 32bit // 8 == 64bit

Windows Server 2008 R2是x64操作系统,因此x86版本的Apache +/- x86 PHP可能会限制您可能已在计算机上安装并尝试分配的内存。在x86版本上,您将不能分配超过2G的内存。

答案 1 :(得分:0)

如果我出现此错误

composer update

当我尝试时它对我有用

composer install

答案 2 :(得分:0)

我遇到了同样的错误,此命令已在localhost上为我解决了问题

php -d memory_limit=-1 "C:/ProgramData/ComposerSetup/bin/composer.phar"

然后composer update

答案 3 :(得分:0)

只需更新最新版本的作曲家

https://getcomposer.org/download/

否则执行以下步骤

此设置仅在本地机器(命令)中

检查 PHP 内存

php -r "echo ini_get('memory_limit');"

输出:

128M

了解PHP路径

php --ini

输出:

Configuration File (php.ini) Path: C:\Windows
Loaded Configuration File:         C:\xampp72\php\php.ini
Scan for additional .ini files in: (none)    
Additional .ini files parsed:      (none)

只需更新您的内存限制

; Maximum amount of memory a script may consume (128MB)
; http://php.net/memory-limit
memory_limit=512M

无限制内存访问

memory_limit=-1

或 只需为 Windows 运行

php -d memory_limit=-1 "C:\ProgramData\ComposerSetup\bin\composer.phar" update

注意: 我建议必须下载最新的作曲家版本

作曲家 -v

答案 4 :(得分:0)

正在更新对我有用的 php.ini 文件。 如果您使用的是 Windows 机器,您可以尝试将内存限制增加到 2 GB,正如 Laravel 建议的那样,在您的 php.ini 中。 在 XAMPP 上,它位于 C:\xampp\php\php.ini

; Maximum amount of memory a script may consume (128MB)
; http://php.net/memory-limit
memory_limit = 2G

重新启动 XAMPP 服务器并再次运行 Composer 更新。

之前: enter image description here

之后: enter image description here