必须以phpinfo()显示的“Loaded Configuration File”路径为准修改php.ini;改完upload_max_filesize和post_max_size后须停止再启动Apache,不可仅重启。

直接改 php.ini 里的 upload_max_filesize 和 post_max_size,然后重启 Apache——不改对、不重启,就一定无效。
怎么找到真正生效的 php.ini 文件
很多人改了文件却没效果,是因为编辑错了配置文件。Apache 实际加载的是哪个 php.ini,必须以 phpinfo() 显示的为准。
- 在 XAMPP 根目录建一个
info.php,内容为<?php phpinfo(); ?> - 浏览器访问
http://localhost/info.php,搜索Loaded Configuration File - 如果显示路径是
C:\xampp\php\php.ini,那就改这个;如果显示的是其他路径(比如带php74或php82的子目录),就得去对应位置找 - Windows 下注意:文件可能被隐藏,或记事本保存时自动加了
.txt后缀,要用管理员权限+纯文本编辑器(如 VS Code、Notepad++)打开并另存为无后缀的php.ini
必须同步修改的两个关键参数
upload_max_filesize 控制单个上传文件上限,post_max_size 控制整个 POST 请求体大小。后者必须 ≥ 前者,否则哪怕文件本身没超,也会被拦在入口。
XAMPP 8.0.30 是一款免费、开源的跨平台 Web 服务器集成包,专为快速搭建本地 PHP 开发环境而设计。该版本核心组件包括:Apache 2.4.56、MySQL 8.0.33、PHP 8.0.30、phpMyAdmin 5.2.1 等。它支持 Windows、Linux 和 macOS 系统,可让开发者在个人电脑上轻松模拟服务器环境,无需复杂配置即可运行 WordPress、Thin
- 打开确认无误的
php.ini,搜索upload_max_filesize,改成你想要的值,例如:upload_max_filesize = 256M - 继续搜索
post_max_size,设为相同或略大:post_max_size = 256M(不要写成256MB,单位只认K/M/G) - 这两个值建议设成一样,避免因顺序或解析差异导致隐性失败
为什么改完还是报错“Script timeout passed”或白屏
大 SQL 文件导入不只是上传问题,PHP 还要解析、执行,耗时远超默认 30 秒。光调大上传限制不够,还得放宽执行时限和内存。
- 在同一个
php.ini中搜索max_execution_time,改为:max_execution_time = 600(10 分钟) - 搜索
memory_limit,至少设为:memory_limit = 512M(小内存机器可试256M,但低于 128M 很容易崩) - 顺手搜
max_input_time,也设为600,防止 PHP 在读取 POST 数据阶段就中断 - 改完保存,回到 XAMPP 控制面板 → 停止 Apache → 再启动 Apache(仅重启 MySQL 不起作用)
什么时候该放弃 phpMyAdmin,改用命令行
当 SQL 文件超过 100MB,或反复调整参数仍卡死、500 错误、中文乱码时,说明 phpMyAdmin 的 PHP 内存模型已到极限。这时候命令行不是“备选”,而是唯一可靠路径。
- 确保 MySQL 正在运行(XAMPP 面板里状态是 Running)
- 打开 CMD 或 PowerShell,执行:
cd C:\xampp\mysql\bin - 运行导入命令:
mysql -u root -p --default-character-set=utf8mb4 mydb < C:\path\to\dump.sql - 注意:
--default-character-set=utf8mb4必须显式加上,否则中文很可能变问号;密码为空直接回车,输入时不会显示字符
最容易被忽略的一点:XAMPP 多版本 PHP 切换(比如控制面板右上角点了 PHP 8.2)会切换实际加载的 php.ini 路径。你以为改的是它,其实 Apache 正在用另一个。每次修改前,先看 phpinfo() 里 Loaded Configuration File 是哪一行——这是唯一可信依据。

















