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

先从最直接的地方下手:修改 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 内存溢出的问题基本就能被按住。如果还是不行,那大概率是代码层面的逻辑缺陷,建议深入审计一下业务逻辑和数据处理方式。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8