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

PHP内存耗尽报错存疑:申请内存远低于限值,WHM设置未生效

问题解析与解决方案

为什么申请10.4MB却触发内存耗尽?

报错里的“tried to allocate 10.4MB”是指本次要分配的内存大小,而内存耗尽的判定逻辑是:脚本当前已占用的内存 + 本次要分配的内存超过了允许的上限(注:你转换的138MB是按1000进制计算的近似值,PHP采用1024进制,134217728字节实际等于128MB)。也就是说,脚本运行到报错位置时,已经占用了接近128MB的内存,再加10.4MB就超出限制了。

为什么WHM设置512MB但实际生效128MB?

PHP-FPM环境下,全局设置可能被多层级配置覆盖,排查方向如下:

  • 检查PHP-FPM池配置:每个站点对应独立的FPM池配置文件(通常路径为/etc/php/{你的PHP版本}/fpm/pool.d/{站点标识}.conf),查看是否存在php_value[memory_limit]或php_admin_value[memory_limit]配置,该设置优先级高于WHM全局配置。
  • 检查站点本地配置:
    • 若使用Apache,查看站点根目录的.htaccess文件,是否有php_value memory_limit 128M这类设置;
    • 若使用Nginx+PHP-FPM,查看站点目录下的php.ini或.user.ini文件,是否定义了memory_limit = 128M,这类用户级配置会覆盖全局设置。
  • 确认配置生效状态:修改WHM的PHP内存设置后,必须重启PHP-FPM服务(命令:systemctl restart php-{版本}-fpm),否则旧配置仍在运行。
  • 排查配置缓存:PHP-FPM可能缓存了旧配置,可尝试重新加载配置(systemctl reload php-{版本}-fpm)或重启服务。

附原始报错与标准转换说明

原始报错:

Allowed memory size of 134217728 bytes exhausted (tried to allocate 10489856 bytes) in /home/MY_USER/public_html/application/views/ms/somefile.php

按PHP标准1024进制转换后(1MB=1024×1024字节):

Allowed memory size of 128 Mega-bytes exhausted (tried to allocate ~10.0 Mega-bytes) in /home/MY_USER/public_html/application/views/ms/somefile.php

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 12:03:37