WordPress上传文件大小超限通常由PHP配置中的upload_max_filesize和post_max_size限制引起,通过调整服务器PHP参数或安装插件即可解决。

修改php.ini文件
在服务器根目录或PHP配置目录找到php.ini文件,使用文本编辑器打开,定位以下参数并修改:
upload_max_filesize=64M post_max_size=128M max_execution_time=300 memory_limit=256M
upload_max_filesize控制单个文件最大上传体积,post_max_size控制整个POST请求体最大体积,必须大于或等于upload_max_filesize,修改完成后保存文件,重启Apache、Nginx或PHP-FPM服务使配置生效,如果使用共享主机无法直接编辑全局php.ini,可在网站根目录创建一个自定义php.ini或.user.ini文件,放入相同参数。
修改.htaccess文件
在WordPress根目录找到.htaccess文件,编辑并在# BEGIN WordPress之外添加以下代码:
php_valueupload_max_filesize64M php_valuepost_max_size128M php_valuemax_execution_time300 php_valuememory_limit256M
该方法适用于Apache服务器且开启了mod_php模式,部分共享主机可能禁止php_value指令,添加后会出现500错误,此时删除对应代码即可恢复,如果使用FastCGI或PHP-FPM模式,.htaccess中的PHP参数不会生效。
修改wp-config.php文件
在WordPress根目录编辑wp-config.php文件,在define('WP_DEBUG', false);之前或文件末尾添加以下代码:
@ini_set('upload_max_filesize','64M');
@ini_set('post_max_size','128M');
@ini_set('max_execution_time','300');
@ini_set('memory_limit','256M');该方法通过PHP运行时设置覆盖默认值,但仅在服务器允许ini_set且PHP运行模式支持时有效,对于部分使用suPHP或严格权限的虚拟主机,ini_set可能被禁用。
在主题functions.php中设置
打开当前WordPress主题的functions.php文件,在文件末尾添加:
functionincrease_upload_size($bytes){
return67108864;//64MB
}
add_filter('upload_size_limit','increase_upload_size');
@ini_set('upload_max_filesize','64M');
@ini_set('post_max_size','128M');upload_size_limit过滤器可修改WordPress多站点或前端上传的大小限制,但不影响PHP底层限制,如果服务器PHP配置未调整,仅靠functions.php可能无法绕过限制。
安装插件调整上传大小
登录WordPress后台,进入“插件”->“安装插件”,搜索“Increase Maximum Upload File Size”或“WP Maximum Upload File Size”,安装并启用插件后,在插件设置页面选择需要的最大上传体积,保存即可,插件会自动尝试修改php.ini、.htaccess或通过ini_set调整参数,优点是不需要手动编辑文件,适合不熟悉服务器配置的用户,但插件无法突破主机商硬性限制。
修改Nginx配置
如果网站运行在Nginx服务器上,需要编辑Nginx站点配置文件,通常在/etc/nginx/conf.d/或/etc/nginx/sites-available/目录中,在server块或location ~ \.php$块中添加:
client_max_body_size64M;
然后执行nginx -t测试配置,再执行systemctl reload nginx或service nginx reload重载配置。client_max_body_size控制请求体最大体积,如果未设置,Nginx默认限制为1M,上传稍大文件就会出现413 Request Entity Too Large错误。
使用cPanel或主机管理面板调整
登录cPanel控制面板,找到“软件”区域的“MultiPHP INI Editor”或“Select PHP Version”,在“MultiPHP INI Editor”中选择对应站点,修改upload_max_filesize、post_max_size、memory_limit等参数并保存,部分面板提供“Switch to PHP Options”页面,可直接调整上传大小和内存限制,修改后系统会自动重启PHP进程。
修改.user.ini文件
对于部分使用PHP-CGI或PHP-FPM的共享主机,可以在网站根目录创建或编辑.user.ini文件,添加:
upload_max_filesize=64M post_max_size=128M memory_limit=256M
保存后等待几分钟或联系主机商刷新PHP进程。.user.ini的优先级高于全局php.ini,但低于.htaccess中的php_value。
检查WordPress多站点网络设置
如果使用WordPress多站点,需要进入“我的站点”->“网络管理”->“设置”->“上传设置”,查看“最大上传文件大小”选项,该选项默认值通常为1500KB,可手动修改为更大数值,但最终仍受服务器PHP参数限制,修改后保存网络设置。
通过FTP上传自定义php.ini
部分虚拟主机允许用户通过FTP在网站根目录上传自定义php.ini与全局php.ini一致,仅包含需要覆盖的参数,上传后,主机会自动加载该文件,无需重启服务器,如果主机使用suPHP或FastCGI,通常支持此方式,上传后可通过WordPress后台“工具”->“站点健康”查看PHP配置是否已更新。
方法十一:使用WordPress命令行工具WP-CLI
如果服务器支持WP-CLI,可以通过命令行执行:
wpconfigsetWP_MEMORY_LIMIT256M
wpeval'ini_set("upload_max_filesize","64M");ini_set("post_max_size","128M");'WP_MEMORY_LIMIT常量可提高WordPress内存限制,但上传大小仍受PHP配置控制。wp eval可临时测试ini_set是否有效,但不会长期保留,建议结合服务器配置修改。
方法十二:修改php-fpm.conf或php.ini的池配置
对于使用PHP-FPM的服务器,可在/etc/php/7.4/fpm/php.ini或/etc/php/8.1/fpm/php.ini中修改上传参数,同时检查/etc/php/7.4/fpm/pool.d/www.conf中的php_admin_value和php_admin_flag指令,如果此处设置了upload_max_filesize或post_max_size,将会覆盖php.ini的全局设置,修改后执行systemctl restart php7.4-fpm重启PHP-FPM服务。
方法十三:检查Cloudflare或代理层限制
如果网站使用了Cloudflare或其他反向代理服务,还需检查代理层的上传限制,Cloudflare免费版计划单次请求体上限为100MB,付费计划可配置更大,在Cloudflare控制台的“Network”设置中可查看“Maximum Upload Size”选项,如果代理层限制小于服务器配置,仍会出现上传失败,需同步调整代理层限制或直接在源站服务器上传。
方法十四:检查PHP运行模式和主机商限制
部分共享主机商在面板中强制限制上传大小为固定值,用户无法自行修改,此时可联系主机商客服申请临时或永久提高上传限制,主机商通常会要求说明用途,并在安全范围内调整,如果是VPS或独立服务器,拥有完全控制权,可直接修改所有相关配置文件。
方法十五:验证修改结果
完成上述任意方法后,登录WordPress后台,进入“媒体”->“添加”,查看上传区域下方显示的最大上传大小是否已更新,也可以创建一个简单的PHP文件,内容为<?php phpinfo(); ?>,通过浏览器访问查看upload_max_filesize和post_max_size的实际生效值,确认后删除该文件以保证安全。
如果需要上传超大文件例如视频或备份文件,建议将upload_max_filesize和post_max_size设置为128M或更高,同时将memory_limit设置为256M以上,并将max_execution_time和max_input_time分别设置为300秒或更高,避免上传过程中因执行时间不足而中断。
对于使用对象存储或外部FTP存储插件的站点,还需在对应插件中配置分块上传或提高各分块大小,以充分利用服务器已调整的上传限制。