必须通过phpinfo()页面查看“loaded configuration file”路径确认实际生效的php.ini,而非依赖php --ini或控制面板快捷入口;修改后需重启apache服务才生效。

怎么确认当前生效的 php.ini 文件路径
很多人改完 php.ini 没效果,第一反应是“没保存”或“重启错了”,其实更大概率是改了错的文件。Apache 模块和 CLI(命令行)用的 php.ini 可能完全不同。
打开浏览器访问 http://localhost/dashboard/phpinfo.php(或自己建个 info.php 放在 htdocs 下,内容为 <?php phpinfo(); ?>),搜索 Loaded Configuration File 这一行——它显示的路径才是 Apache 实际加载的配置文件。
- Windows XAMPP 常见路径:
C:\xampp\php\php.ini(但必须以phpinfo()显示为准) - macOS XAMPP 常见路径:
/Applications/XAMPP/xamppfiles/etc/php.ini - macOS Homebrew PHP 路径:
/usr/local/etc/php/8.2/php.ini(版本号可能不同)
修改 upload_max_filesize 和 post_max_size 时要注意什么
这两个参数不是独立生效的,它们有强依赖关系:如果 upload_max_filesize 设为 20M,但 post_max_size 还是默认的 8M,上传任何超过 8MB 的文件都会失败,且错误码通常是 UPLOAD_ERR_NO_FILE 或直接静默失败。
实操建议:
-
post_max_size必须 ≥upload_max_filesize,建议设为后者的 1.2–1.5 倍(比如upload_max_filesize = 20M→post_max_size = 24M) -
memory_limit也要同步调高,否则大文件处理时可能触发Fatal error: Allowed memory size exhausted - 改完别忘了检查
file_uploads = On,有些环境默认是Off
改完 php.ini 后 Apache 不重启就无效
XAMPP 的 Apache 是“读取一次配置、长期运行”的进程,改了 php.ini 不重启服务,改动完全不会生效——哪怕你刷新页面一百次也没用。
正确操作顺序:
- 先在 XAMPP 控制面板里点
StopApache(确保状态变灰) - 再改
php.ini并保存(推荐用 VS Code、Notepad++ 等编辑器,避免记事本乱码) - 最后点
StartApache(绿色 Running 才算真正加载新配置) - 验证:刷新
phpinfo()页面,确认参数值已更新,且Loaded Configuration File时间戳是修改后的
Mac 上没有 php.ini 怎么办
macOS 自带 PHP 或 Homebrew 安装的 PHP 默认不带 php.ini 文件,只有模板 php.ini.default。直接编辑它是无效的。
必须手动复制一份并重命名:
- Homebrew PHP(如 8.2):
sudo cp /usr/local/etc/php/8.2/php.ini.default /usr/local/etc/php/8.2/php.ini - macOS 自带 PHP(已弃用,不推荐):
sudo cp /private/etc/php.ini.default /private/etc/php.ini - XAMPP for Mac:
cp /Applications/XAMPP/xamppfiles/etc/php.ini.default /Applications/XAMPP/xamppfiles/etc/php.ini
注意:复制后要检查文件权限,sudo chown $(whoami) /usr/local/etc/php/8.2/php.ini 避免后续编辑被拒绝。
最容易被忽略的一点:XAMPP 控制面板里点 “Config → PHP (php.ini)” 打开的文件,不一定就是 phpinfo() 显示的那个路径——它只是控制面板的快捷入口,仍需以 phpinfo() 输出为准。改错文件,等于没改。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











