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

PHP 7.1.15下php-fpm无法修改memory_limit问题求助

解决PHP-FPM无法修改memory_limit的问题

我之前也踩过几乎一模一样的坑,明明改了php.ini、脚本里也用了ini_set,但FPM环境下的memory_limit就是顽固地停在128M,折腾了好久才找到关键原因,给你几个核心排查方向:

1. 检查PHP-FPM Pool配置的强制覆盖

这是最常见的「隐形坑」!PHP-FPM的池配置文件(比如默认的www.conf,路径一般是/etc/php/7.1/fpm/pool.d/www.conf,不同发行版可能略有差异)里,允许用php_admin_value或php_value直接覆盖php.ini的设置,而且**php_admin_value设置的参数是完全无法通过脚本里的ini_set()修改的**。

打开你的池配置文件,搜索以下内容:

php_admin_value[memory_limit] = 128M
# 或者
php_value[memory_limit] = 128M

如果存在这类配置,要么把值改成你需要的-1,要么直接注释掉这一行,之后一定要重启PHP-FPM服务。

2. 确认PHP-FPM服务已重启

修改任何配置文件后,必须重启PHP-FPM才能让新配置生效,这是很多人容易忽略的细节:

# 根据你的系统选择对应命令:
systemctl restart php7.1-fpm
# 或者
service php7.1-fpm restart

3. 查看FPM环境下的phpinfo()细节

在FPM环境下运行一个phpinfo()脚本,重点关注这几个部分:

  • Loaded Configuration File:确认加载的php.ini确实是你修改的那一个
  • memory_limit:观察「Local Value」和「Master Value」,如果Master Value是-1但Local Value是128M,说明有其他配置(池配置、额外的.ini文件或.user.ini)覆盖了主配置
  • Additional .ini files parsed:检查有没有其他被加载的.ini文件,这些文件里也可能偷偷设置了memory_limit

4. 检查网站目录下的.user.ini文件

如果你的服务器开启了user_ini.filename配置(默认是开启的),网站根目录或脚本所在目录下的.user.ini文件也会影响memory_limit,且优先级较高。可以检查一下相关目录里有没有这个文件,看看里面的配置项。

最后验证

修改完上述配置并重启FPM后,再运行你的测试脚本:

ini_set('memory_limit', -1);
echo ini_get('memory_limit');
exit;

如果还是有问题,再回头看phpinfo里的memory_limit相关字段,确认所有可能的覆盖点都被清理了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:10:07