You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WAMP环境PHP.exe无法分配1G以上内存,memory_limit设为-1仍失效求助

解决WAMP下Composer更新Symfony时的内存不足问题

从你的报错信息和测试脚本来看,核心问题是Windows环境下32位PHP进程的内存上限限制——即使你把memory_limit设为-1,32位PHP在Windows下的实际可用内存上限大概在1.2-1.5GB左右,这是系统层面的硬件架构限制,不是PHP配置能直接突破的。结合你的环境(PHP5.6.18 + WAMP3.1.3 + Windows7),大概率是你使用的是32位版本的PHP。

我给你一步步梳理排查和解决办法:

1. 先确认PHP的位数(32位/64位)

打开命令行,运行以下命令:

php -v

看输出结果里的标识:如果是x86就是32位,x64则是64位。比如:

PHP 5.6.18 (cli) (built: Jan 6 2016 13:24:17)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies

如果没有x64字样,那32位PHP就是你内存受限的根源。

2. 针对性解决方案

方案一:切换到64位PHP版本

WAMP3.1.3支持64位PHP5.6版本,你可以:

  • 打开WAMP管理器,找到PHP -> Version,查看是否有带x64后缀的PHP5.6版本可选;
  • 如果没有,去PHP官方下载对应版本的64位PHP包,手动添加到WAMP的bin/php目录下,然后在WAMP管理器中切换版本。
    切换后,64位PHP进程可以突破32位的内存限制,memory_limit=-1就能真正生效。

方案二:检查CLI版PHP的配置文件

有时候WAMP的WEB版PHP和CLI版PHP用的是不同的php.ini文件,你可能只修改了WEB版的配置。运行以下命令查看CLI加载的配置文件:

php --ini

输出会显示类似内容:

Configuration File (php.ini) Path: C:\Windows
Loaded Configuration File: C:\wamp\bin\php\php5.6.18\php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed: (none)
确认Loaded Configuration File对应的文件里,memory_limit是否设置为-1,如果没有,修改后保存再重试。

方案三:临时给Composer分配最大内存

即使暂时不换PHP版本,你可以在运行Composer时直接指定内存参数,强制使用最大可用内存:

php -d memory_limit=-1 composer.phar update

这个命令会临时覆盖PHP的内存限制配置,优先使用这个参数。

方案四:优化Composer的内存占用

减少Composer的内存消耗也能缓解问题:

  • 跳过开发依赖更新:composer update --no-dev
  • 清理Composer缓存:composer clear-cache
  • 只更新指定依赖:composer update symfony/symfony(如果只需要更新Symfony核心)

3. 辅助检查:Windows虚拟内存设置

虽然不是主要原因,但可以确保系统虚拟内存足够:

  • 右键「计算机」→「属性」→「高级系统设置」→「高级」→「性能」→「设置」→「高级」→「虚拟内存」;
  • 选择「系统管理的大小」,或者手动设置一个较大的数值(比如2倍物理内存)。

附上你提供的报错信息以便参考:

Composer报错:

Fatal error: Out of memory (allocated 1397751808) (tried to allocate 268435456 bytes) in phar://C:/wamp/www/DESiwid/composer.phar/src/Composer/DependencyResolver/Solver.php on line 220 Segmentation fault

内存测试脚本报错:

set memory_limit to 810M memory limit is 810M try allocating 800 megabyte...pass.Usage: 800.5 Peak: 800.5 memory_limit (get value):849346560 set memory_limit to 860M memory limit is 860M try allocating 850 megabyte...pass.Usage: 850.5 Peak: 850.5 memory_limit (get value):901775360 set memory_limit to 910M memory limit is 910M try allocating 900 megabyte...pass.Usage: 900.5 Peak: 900.5 memory_limit (get value):954204160 set memory_limit to 960M memory limit is 960M try allocating 950 megabyte... Fatal error: Out of memory (allocated 262144) (tried to allocate 996147201 bytes ) in C:\wamp\www\_test\memory.php on line 5

内容的提问来源于stack exchange,提问作者VinZ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 07:23:29