在 WordPress 后台进行媒体文件上传时,如果遇到“文件大小超过限制”的错误提示,通常是由于服务器 PHP 配置对上传文件大小、POST 数据大小或脚本执行时间进行了限制。本文将系统性地介绍三种主流且有效的解决方案,帮助你一劳永逸地解决此问题。
解决方案概览
解决 WordPress 上传限制,核心是修改 PHP 的运行时配置。主要途径有三种,你可以根据自己对服务器的控制权限和熟悉程度来选择:
- 修改 WordPress 主题函数文件:最方便、对服务器无侵入性的方法。
- 修改服务器配置文件(.htaccess 或 php.ini):效果最彻底,但需要服务器相应支持。
- 通过主机控制面板修改:最直观,适合使用宝塔、cPanel 等面板的用户。
方法一:修改 WordPress 主题函数文件(推荐)
这是最安全、最便捷的方法,无需直接修改服务器文件,且修改会随着主题生效。将以下代码添加到当前使用主题的 functions.php 文件末尾即可。
// 提高 WordPress 上传限制
@ini_set('upload_max_filesize', '64M');
@ini_set('post_max_size', '64M');
@ini_set('max_execution_time', '300');
@ini_set('max_input_time', '300');
参数说明:
upload_max_filesize: 单个上传文件的最大允许大小。post_max_size: 通过 POST 请求可提交的最大数据量(必须大于或等于upload_max_filesize)。max_execution_time: 脚本最大执行时间(秒),上传大文件时需要更长时间。max_input_time: 脚本解析输入数据(如 POST 数据)的最大时间(秒)。
优点: 操作简单,不影响服务器其他站点,更换主题时需重新添加。
注意: 如果服务器主配置中相关参数设置得过低,此方法可能无效。
方法二:修改服务器配置文件
此方法直接修改服务器 PHP 配置,效果全局且彻底。根据你的服务器类型(Apache 或 Nginx)操作不同。
对于 Apache 服务器(使用 .htaccess 文件)
如果你的网站运行在 Apache 服务器上,并且支持 .htaccess 文件覆盖 PHP 配置,可以在 WordPress 安装根目录下的 .htaccess 文件中,在“# BEGIN WordPress”规则之前添加以下代码:
php_value upload_max_filesize 64M
php_value post_max_size 64M
php_value max_execution_time 300
php_value max_input_time 300
重要提示: 请确保添加在 WordPress 自身的重写规则之外,通常放在文件最顶部或 # BEGIN WordPress 注释之前,以避免规则冲突。如果根目录没有 .htaccess 文件,可以新建一个纯文本文件,命名为 .htaccess,粘贴上述代码后上传。
对于 Nginx 服务器
Nginx 服务器不支持 .htaccess,也无法通过 php_value 指令修改 PHP 设置。你需要直接修改服务器上的 PHP 配置文件(通常是 php.ini)或网站的 Nginx 虚拟主机配置。
- 找到
php.ini文件:可以通过在网站目录创建phpinfo()文件来查找“Loaded Configuration File”的路径。 - 修改
php.ini:找到并修改以下参数:upload_max_filesize = 64M post_max_size = 64M max_execution_time = 300 max_input_time = 300 - 重启 PHP 服务:修改保存后,需要重启 PHP-FPM 或 Web 服务器(如 Nginx)使配置生效。
方法三:通过主机控制面板修改(以宝塔面板为例)
对于使用宝塔面板、cPanel、Plesk 等图形化控制面板的用户,这是最直观的方法。
- 登录宝塔面板,进入【网站】列表。
- 找到你的 WordPress 站点,点击右侧的【设置】。
- 切换到【PHP 版本】选项卡,你会看到当前使用的 PHP 版本,点击右侧的【设置】按钮。
- 在弹出的 PHP 配置界面中,找到【配置修改】选项。
- 在打开的
php.ini编辑器中,使用 Ctrl+F 搜索并修改以下参数:upload_max_filesize = 64M post_max_size = 64M max_execution_time = 300 max_input_time = 300 - 点击保存,并重启 PHP 服务。
故障排查与注意事项
- 顺序检查:建议按“方法一 → 方法三/方法二”的顺序尝试,优先使用对服务器影响最小的方案。
- 参数一致性:确保
post_max_size的值大于或等于upload_max_filesize。 - 单位注意:配置中的“M”代表兆字节,务必使用大写字母。
- 修改无效? 如果以上方法均无效,可能是主机服务商在更高层级做了硬性限制,需要联系你的主机提供商客服申请提高限制。
- 安全提醒:过高的
max_execution_time和文件大小限制可能带来安全风险,请根据实际需要设置合理的值。
通过以上任何一种方法,你都可以有效解决 WordPress 上传文件时的大小限制问题。选择最适合你运维环境的方法进行操作即可。