确认当前生效的memory_limit值:新建info.php(内容<?php phpinfo(); ?>)放htdocs,访问http://localhost/info.php,搜索Loaded Configuration File得真实php.ini路径,再搜memory_limit看“Local Value”列——这才是脚本实际可用上限。

白屏不是内存不够的铁证,先确认是不是 memory_limit 真的卡住了你——90% 的人改错文件、没重启、或漏了 CLI 场景,结果反复折腾却毫无进展。
怎么确认当前生效的 memory_limit 值?
别猜,直接看真实运行时值:
- 在 XAMPP 的
htdocs下新建info.php,内容为<?php phpinfo(); ?> - 浏览器访问
http://localhost/info.php,搜索Loaded Configuration File→ 这个路径才是 Apache 正在读的php.ini - 再搜
memory_limit,看右侧 “Local Value” 列的值(不是 Master Value)——这才是你脚本实际能用的上限 - 如果 Local Value 是
128M或更低,且你刚改过配置但没变,说明改错文件或 Apache 没真正重启
为什么改了 php.ini 还是白屏?常见覆盖点
memory_limit 不是写一次就全局生效,它可能被多层覆盖:
-
.htaccess里有php_value memory_limit 64M→ 直接注释掉这行 - WordPress 主题或插件的
index.php/functions.php里调用了ini_set('memory_limit', '64M')→ 搜索整个wp-content目录 -
wp-config.php中定义了define('WP_MEMORY_LIMIT', '64M')→ 这个值会覆盖php.ini的设置(仅对 WordPress 主循环生效) - CLI 模式下跑
wp-cli或php artisan时仍报错?那是另一个php.ini:终端执行php --ini查路径,同步改
改完必须彻底重启 Apache,否则等于没改
XAMPP 的 Apache 启动后就把 php.ini 加载进内存,后续所有请求都复用。改完不重启,配置永远不会生效:
立即学习“PHP免费学习笔记(深入)”;
- 打开 XAMPP 控制面板,先点 Stop Apache → 等状态变成红色/灰色 → 再点 Start
- 不要只点 “Restart”,它有时跳过重载配置,尤其 Windows 下容易卡住
- 重启后立刻刷新
info.php,核对memory_limit的 Local Value 是否更新 - 如果值没变,检查文件是否保存成功(Windows 记事本可能加了
.txt后缀;建议用 VS Code 以“无 BOM UTF-8”保存)
白屏真因常藏在错误日志里,别只盯 memory_limit
盲目调高 memory_limit 容易掩盖真正问题。500 错误是 Apache 返回的状态码,背后可能是:
-
apache\logs\error.log出现Segmentation fault→ 扩展冲突(比如opcache和xdebug同时启用) - 日志里有
Fatal error: Call to undefined function→ 缺扩展、函数名拼错,加内存没用 - 日志空白,只有
Premature end of script headers→ MySQL 连接失败、磁盘满、PHP-FPM 崩溃 - Windows 下中文用户名或路径导致权限拒绝 → XAMPP 在非英文环境常因此静默失败
最常被忽略的是:memory_limit 调高后,脚本仍可能在分配内存前就被 max_execution_time 中断——大 SQL 导入或 Composer 安装失败,往往得同步调高这个值。



















