如何让Nginx上的Laravel项目PHP memory_limit遵循php.ini主配置并定位1536M设置
排查PHP local memory_limit(1536M)设置位置的方向
以下是几个你可能没检查到的地方,按优先级排查:
Laravel项目内部配置
- 检查项目根目录或
public目录下的.user.ini文件:PHP允许单目录下的.user.ini覆盖全局php.ini设置,直接搜索文件内的memory_limit字段 - 查看项目
public/.htaccess文件:即便用Nginx,若配置了允许解析.htaccess,里面的php_value memory_limit 1536M也会生效 - 全局搜索项目代码:有些项目会通过代码动态设置,比如在
bootstrap/app.php、自定义服务提供者或入口文件里写ini_set('memory_limit', '1536M');,用命令grep -r "memory_limit" /path/to/laravel/project快速查找
- 检查项目根目录或
PHP-FPM的其他配置文件
- 遍历
/etc/php-fpm.d/目录下所有.conf文件:除了www.conf,可能存在项目专属的配置文件(比如laravel.conf),里面可能有php_admin_value[memory_limit]或php_value[memory_limit]的设置 - 检查
/etc/php-fpm.conf主配置文件:全局配置中也可能包含内存限制的设置
- 遍历
Nginx站点的额外配置
- 查看项目对应的Nginx站点配置文件:通常在
/etc/nginx/sites-available/或/etc/nginx/sites-enabled/目录下,有些配置会通过fastcgi_param PHP_VALUE "memory_limit=1536M";直接传递PHP参数 - 检查Nginx全局配置
/etc/nginx/nginx.conf中的fastcgi相关参数块
- 查看项目对应的Nginx站点配置文件:通常在
验证配置加载情况
- 在项目
public目录创建phpinfo.php,内容为<?php phpinfo(); ?>,访问后确认:Loaded Configuration File:确认当前生效的php.ini是不是你修改的/etc/php.iniAdditional .ini files parsed:查看是否有额外加载的.ini文件,这些文件也可能覆盖内存限制
- 修改任何配置后,务必重启PHP-FPM和Nginx服务:执行
sudo systemctl restart php-fpm和sudo systemctl restart nginx使配置生效
- 在项目
内容的提问来源于stack exchange,提问作者Yeo Bryan
相关产品推荐
相关产品推荐

