商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > centos中如何解决php内存溢出

centos中如何解决php内存溢出

  发布于2026-07-16 阅读(0)

扫一扫,手机访问

在 CentOS 系统上跑 PHP 时,内存溢出是个挺让人头疼的问题——你可能正处理任务到一半,脚本突然就挂了,日志里留下一串 "Allowed memory size exhausted" 的错误。别急,下面这套组合拳基本能帮你搞定。

centos中如何解决php内存溢出

先从最直接的地方下手:修改 PHP 的配置文件 php.ini。这个文件通常藏在 /etc/php.ini 或者 /etc/php.d/ 目录下。用你喜欢的编辑器打开它,比如 vim:

sudo vim /etc/php.ini

找到这一行:

memory_limit = 32M

把它改成你需要的数值,比如:

memory_limit = 128M

保存退出,然后记得重启 Web 服务器,让修改生效:

sudo systemctl restart httpd

或者,如果你用的是 Nginx:

sudo systemctl restart nginx

如果你的环境用了 PHP-FPM,那还得额外处理一下。PHP-FPM 的配置文件通常位于 /etc/php-fpm.d/www.conf/etc/php-fpm.conf。找到:

php_admin_value[memory_limit] = 32M

同样改成:

php_admin_value[memory_limit] = 128M

保存后重启 PHP-FPM:

sudo systemctl restart php-fpm

不过,光调大内存限制并不总是万能的——有时候问题出在代码本身。务必检查一下你的应用,看看有没有潜在的内存泄漏或某个函数在疯狂吃内存。比如循环里不断追加字符串、没有释放的资源、或者一次加载了超大量的数据集。这时候用上 Xdebug 或 Blackfire 这类内存分析工具,能帮你精准定位病灶。

如果以上都试过了还是撑不住,那就得请出操作系统的虚拟内存(swap)来帮忙了。创建 swap 文件的方法很简单,比如创建一个 1GB 的:

sudo dd if=/dev/zero of=/swapfile bs=1M count=1024
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

为了让系统重启后自动启用这块 swap,还需要把它写入 /etc/fstab

/swapfile swap swap defaults 0 0

最后重启一下系统(或者直接 sudo reboot),完整的 swap 就生效了。

一般来说,走完这几步,PHP 内存溢出的问题基本就能被按住。如果还是不行,那大概率是代码层面的逻辑缺陷,建议深入审计一下业务逻辑和数据处理方式。

本文转载于:https://www.yisu.com/ask/86242063.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注