phpinfo可查内存限制吗_查看memory_limit设定值途径【查看】

phpinfo() 显示当前生效的 memory_limit 值,位于 Core 部分和 Directive 的 Local Value 行;ini_get(‘memory_limit’) 可精准获取脚本当前实际值,-1 表示无限制;不一致常见于多 PHP 版本、.user.ini、.htaccess、PHP-FPM 配置或 ini_set() 覆盖。

phpinfo可查内存限制吗_查看memory_limit设定值途径【查看】

可以,phpinfo() 能直接显示当前生效的 memory_limit 值,但它只反映运行时配置,不区分是来自 php.ini.htaccessini_set() 还是命令行参数 —— 你看到的是最终结果。

phpinfo() 页面里快速定位 memory_limit

打开 phpinfo() 输出页面(比如访问 /info.php),用浏览器 Ctrl+F 搜索:memory_limit。它会出现在两个位置:

  • Core 部分:显示当前实际生效值(如 128M-1256M
  • Directive Local Value / Master Value 行:能帮你判断是否被运行时修改过(Local ≠ Master 表示被 ini_set() 或 .htaccess 改过)

比 phpinfo() 更精准的获取方式:ini_get()

如果只想确认脚本当前能用多少内存,ini_get('memory_limit') 是最轻量、最可靠的方法 —— 它返回的就是 phpinfo() 里 “Local Value” 那一栏的值,且不受输出缓冲或页面渲染影响。

echo ini_get('memory_limit'); // 输出类似 "128M" 或 "-1"

注意:-1 表示无限制(但受系统物理内存和 ulimit 约束),不是“没设置”。

立即学习PHP免费学习笔记(深入)”;

为什么有时 phpinfo() 显示的值和 php.ini 不一致?

常见原因有这些:

Bing图像创建器

Bing图像创建器

必应出品基于DALL·E的AI绘图工具

下载

  • Web 服务器用了多版本 PHP(比如 Apache 加载了错误的 php.ini,而 CLI 用的是另一个)
  • .user.ini 文件在当前目录下存在,并覆盖了全局设置(仅对 CGI/FastCGI 有效)
  • Apache 的 .htaccess 里写了 php_value memory_limit 256M(仅限 Apache + mod_php)
  • PHP-FPM pool 配置中设置了 php_admin_value[memory_limit] = 512M(优先级高于 php.ini
  • 脚本开头调用了 ini_set('memory_limit', '512M')(只对当前请求生效)

命令行下查 memory_limit 要加 -c 指定配置文件

CLI 模式默认不读 Web 服务器用的 php.ini,容易误判。查 CLI 实际生效值,得明确指定配置路径:

php -c /etc/php/8.2/cli/php.ini -r "echo ini_get('memory_limit');"

或者直接看 CLI 加载了哪个 php.ini

php --ini

漏掉 -c 或用错路径,查出来的就不是你 Web 环境的真实值。

真正麻烦的不是找不到值,而是多个配置层叠加后,你改了 php.ini 却发现没生效 —— 一定先跑一次 phpinfo()ini_get() 确认“此刻实际生效的是谁”。

https://www.php.cn/faq/1995047.html

发表回复

Your email address will not be published. Required fields are marked *