跳转到主内容
新派编程网 - 新潮编程理念,全新技术课堂!

XAMPP修改PHP内存限制 XAMPP调整upload_max_filesize

PHP配置修改后不生效,核心在于精准定位Apache实际加载的php.ini路径(通过phpinfo()确认)、同步调整upload_max_filesize与post_max_size、并重启Apache服务;超大SQL文件应优先使用mysql命令行导入。 直接改
php.ini
里的
memory_limit
和
upload_max_filesize
是对的,但改完不生效、改了还是报错、或者导入中途崩溃——这些都不是配置写错了,而是没踩准生效条件或忽略了协同参数。 确认你改的是 Apache 实际加载的 php .ini 很多人在
C:\xampp\php\php.ini
里改了,但 Apache 加载的其实是另一个文件。XAMPP 控制面板右上角可能切换过 PHP 版本(比如 PHP 8.2 → 8.3),每个版本对应独立的
php.ini
;Windows 下还可能因权限问题被系统重定向到临时路径。 访问
http://localhost/dashboard/phpinfo.php
,搜索
Loaded Configuration File
,看它指向哪条完整路径 如果显示的是
C:\xampp\php\php.ini
,但你编辑的是
php.ini-development
或桌面副本,就白改了 用管理员权限打开记事本(或 VS Code)再编辑,避免 Windows 隐藏写保护 upload_max_filesize 和 post_max_size 必须同步调大
upload_max_filesize
只管单个文件大小,
post_max_size
管整个 POST 请求体(含文件 + 表单字段)。只要后者更小,上传就会在 PHP 解析层就被拦截,错误提示还是“文件超出上传大小限制”。 设成相同值最稳妥,例如:
upload_max_filesize = 512M
和
post_max_size = 512M
不要只改一个:比如把
upload_max_filesize
改到 1G,但
post_max_size
还是默认 8M,照样失败 单位必须带字母(
M
或
G
),写成
512
或
512m
(小写)可能被忽略 光调上传限制还不够:memory_limit 和 max_execution_time 得跟上 phpMyAdmin 导入时会把整个 SQL 文件读进内存解析,再逐行执行。哪怕上传成功,脚本也可能在执行阶段因超时或内存溢出中断,表现为白屏、500 错误或 “Script timeout passed”。 PHP 8.5.5 PHP 8.5.5 是 PHP 8.5 分支的维护更新版本。该版本延续了“小步快跑”的迭代逻辑,通过深度错误修复、底层性能微调以及安全加固,旨在为开发者提供一个更健壮、更高效的运行环境。该版本严格遵守语义化版本规范,不包含破坏性变更。 下载 立即学习 “ PHP免费学习笔记(深入) ”;
memory_limit
至少设为
512M
,超大文件建议
1024M
max_execution_time = 600
(10 分钟),避免脚本被强制终止
max_input_time = 600
,防止 POST 数据解析阶段超时(尤其网络慢或文件含 BLOB) 改完这四行后,**必须重启 Apache**——只点 MySQL 的 Restart 没用 超过 200MB 的 SQL 文件,别硬扛 phpMyAdmin phpMyAdmin 是 Web 界面工具,不是数据库导入引擎。它把 SQL 全加载进 PHP 进程再模拟执行,遇到百万级 INSERT 或复杂视图定义极易崩溃,即使所有 PHP 参数都拉满也救不了。 优先用命令行:
mysql -u root -p mydb < C:\backup\dump.sql
确保 MySQL 正在运行,终端进入
C:\xampp\mysql\bin
目录再执行 如果提示
mysql
不是内部命令,就把该路径加进系统
PATH
,或直接在该目录下开 CMD 这条命令完全绕过 PHP,不受任何
upload_max_filesize
或超时限制,也快得多 真正容易被忽略的点是:Apache 加载的
php.ini
路径、
post_max_size
与
upload_max_filesize
的协同关系、以及 phpMyAdmin 自身的架构瓶颈——它不是为导入几百 MB 数据设计的。命令行才是 XAMPP 下处理大 SQL 文件的默认路径,不是备选方案。

相关文章