WordPress上传文件大小超限解决

WordPress上传文件大小超限解决

  • admin admin
  • 2026-09-12
  • 2422
  • 0

WordPress上传文件大小超限通常由PHP配置中的upload_max_filesize和post_max_size限制引起,通过调整服务器PHP参数或安装插件即可解决。修改php.ini文件在服务器根目录或PHP配置目录找到php.ini文件,使用文...

¥ 0.00
当前位置:首页 > WordPress企业 > WordPress上传文件大小超限解决
详情介绍

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

WordPress上传文件大小超限解决  第1张

修改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 nginxservice 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_filesizepost_max_sizememory_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一致,仅包含需要覆盖的参数,上传后,主机会自动加载该文件,无需重启服务器,如果主机使用suPHPFastCGI,通常支持此方式,上传后可通过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_valuephp_admin_flag指令,如果此处设置了upload_max_filesizepost_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_filesizepost_max_size的实际生效值,确认后删除该文件以保证安全。

如果需要上传超大文件例如视频或备份文件,建议将upload_max_filesizepost_max_size设置为128M或更高,同时将memory_limit设置为256M以上,并将max_execution_timemax_input_time分别设置为300秒或更高,避免上传过程中因执行时间不足而中断。

对于使用对象存储或外部FTP存储插件的站点,还需在对应插件中配置分块上传或提高各分块大小,以充分利用服务器已调整的上传限制。

0