1panel 面板 PHP 内存限制怎么修改
照着走一遍,你就能把 1Panel 里任意一个 PHP 环境的 memory_limit 改掉并让它真正生效,同时避开「改了没反应」和「重建被覆盖」这两个最常见的坑。
第一步:确认要改哪个 PHP 环境,以及现在限制是多少
先搞清楚你的网站跑在哪个 PHP 环境上,否则很容易改了一个用不上的容器。打开 1Panel 左侧菜单「网站」→「网站」,在你出问题的站点右侧点「更多」→「运行环境」,记下环境名称(例如 php8、php7.4-run)。也可以在「网站」→「运行环境」列表里直接看到所有环境和对应的 PHP 版本号。
再看当前生效值。进「容器」→「容器」,找到名称以 1panel-php 开头的容器(就是刚才那个环境),点右侧「终端」,执行:
php -i | grep -E "Loaded Configuration File|memory_limit"
第一行是 php.ini 的真实路径(官方镜像一般是 /usr/local/etc/php/php.ini),第二行是当前值。默认多为 128M。
注意:一个 1Panel 里可能有多个 PHP 环境(php7.4 / php8.0 / php8.1),它们各自独立。网站报内存不足时,只改一个环境不解决问题。
第二步:在面板界面改(推荐做法)
这一步在图形界面完成修改,得到的结果是配置被面板持久化,容器重建也不会丢。路径:左侧「网站」→「运行环境」→ 点击目标环境名称进入详情页 → 切到「配置修改」标签页。页面上会列出 max_execution_time、max_input_time、memory_limit、post_max_size、upload_max_filesize 等常用项,把 memory_limit 从 128M 改成 256M 或 512M,点右下角「保存」。
如果你要改的值不在这个列表里,切到同一详情页的「配置文件」标签(部分版本叫「PHP 配置文件」),会直接打开 php.ini 全文编辑。搜索 memory_limit,改成:
memory_limit = 512M
保存即可。这两处改的都是同一个文件,用哪种都行。
第三步:让配置生效(重启运行环境)
保存后配置只是写进文件,PHP-FPM 进程还没重新读取,必须重启容器才会生效。回到该运行环境详情页,点右上角的「重启」按钮;或者到「容器」→「容器」,在对应容器右侧点「重启」。
重启完成后,重复第一步的命令验证:
php -i | grep memory_limit
输出 memory_limit => 512M 就成功了。网站里如果装了 phpinfo 页面,刷新一下也能看到 memory_limit 变成 512M。
注意:不要用
nginx -s reload那种轻量重载,PHP-FPM 读的是启动时的 php.ini,必须重启容器(或对 FPM 主进程发kill -USR2 1)才生效。
第四步:万一界面上没找到,用命令行兜底
如果你的 1Panel 版本界面上没有「配置修改」标签,就走容器终端。进入容器终端后:
sed -i 's/^memory_limit.*/memory_limit = 512M/' /usr/local/etc/php/php.ini
如果该文件的 memory_limit 是被注释掉的(前面有 ;),sed 会匹配不到,这时改用追加方式,新建一个片段文件(官方镜像会自动加载 conf.d 下所有 ini):
echo "memory_limit = 512M" > /usr/local/etc/php/conf.d/99-memory.ini
然后按第三步重启容器。
注意:容器内手改的文件写在容器可写层,一旦在面板里重新部署该运行环境(重建容器),改动就会全部丢失。长期使用请务必回到第二步用面板界面改。路径也可能因镜像不同而不同,以第一步
php --ini查到的为准。
第五步:把容易一起出问题的参数也调掉
只改内存往往还不够。上传大文件、跑长任务时报错,多半还要一起调 upload_max_filesize、post_max_size、max_execution_time。在同一个「配置修改」页面里把这几项同步放大,例如 post_max_size = 64M、upload_max_filesize = 64M、max_execution_time = 300,保存后重启。
注意:
memory_limit = -1表示不限制,看着省事,但容器本身有内存上限(面板创建运行环境时设置的内存限额),超了会被系统直接 OOM Kill,表现是 PHP 进程莫名消失,反而更难排查。建议给一个明确数字。另外 WordPress 这类程序有自己的WP_MEMORY_LIMIT常量,写在wp-config.php里,必要时一并改成相同的值。
小结
- 先确认网站用的是哪个 PHP 环境,别改错容器。
- 首选路径:网站 → 运行环境 → 详情 → 配置修改 / 配置文件,改
memory_limit后保存。 - 改完必须重启该运行环境(容器),否则不生效。
- 用
php -i | grep memory_limit验证结果,别靠猜。 - 优先用面板界面改,容器内手改会在重新部署时丢失。
- 上传/超时相关参数一并调整,避免只解决一半问题。
原文链接:https://www.gj0.com/thread-1213.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。