WAMP(64位PHP 5.6.16)memory_limit无法修改问题咨询
兄弟,这种情况我踩过好多坑,大概率是你没找对PHP真正在加载的配置文件,或者有其他优先级更高的设置在覆盖你的修改。给你一步步捋清楚排查思路:
核心排查步骤
1. 先锁定PHP实际在用的配置文件
这是最关键的一步!很多人改了半天都是错的模板文件:
- 如果你是通过网页看phpinfo,直接找
Loaded Configuration File这一项,它显示的路径就是当前PHP正在使用的配置文件——只需要修改这个文件就行,那些php.ini-production/php.ini-development都是默认模板,根本不会被加载。 - 如果是CLI命令行模式,运行命令:
输出里的php --iniLoaded Configuration File就是你要改的目标文件。
2. 检查有没有其他地方在强制覆盖memory_limit
就算改对了主配置文件,也可能被更高优先级的设置覆盖:
- .htaccess文件:如果是Apache服务器,网站根目录的
.htaccess里可能藏着php_value memory_limit 128M,直接删掉或者改成512M即可。 - PHP-FPM池配置:如果用的是Nginx+PHP-FPM,找到PHP-FPM的池配置文件(比如
/etc/php/7.x/fpm/pool.d/www.conf),看看有没有php_admin_value[memory_limit] = 128M,改成512M后必须重启php-fpm服务。 - .user.ini文件:PHP 5.3+支持用户级配置,放在网站根目录的
.user.ini里如果有memory_limit = 128M,修改成512M就好。 - 代码动态设置:检查项目代码里有没有
ini_set('memory_limit', '128M');这种语句,有的话删掉或者改成512M——代码里的设置优先级是最高的。
3. 确认你重启的是正确的服务
别白忙活!不同环境要重启对应的服务:
- Apache环境:重启httpd服务(比如
systemctl restart httpd或者service apache2 restart)。 - Nginx+PHP-FPM:必须重启php-fpm服务(比如
systemctl restart php7.x-fpm),光重启Nginx完全没用。 - 如果用宝塔、面板类工具,一定要在面板里重启对应的PHP服务,不要只重启web服务。
4. 排查多PHP版本冲突
有时候系统里装了多个PHP版本(比如同时有PHP7.2和PHP7.4),你修改的是其中一个版本的配置,但网页实际用的是另一个版本。通过phpinfo里的PHP Version确认版本,再去对应版本的目录找配置文件修改。
内容的提问来源于stack exchange,提问作者TJ15
相关产品推荐
相关产品推荐

