提高 WordPress 上传限制的 5 种方法
您是否曾在尝试在 WordPress 中上传媒体文件时遇到「超过上传限制」的错误?WordPress 的默认上传限制因服务器环境而异,但在大多数情况下设置为 2MB~64MB。本文通过代码示例说明了提高上传限制的 5 种方法。
<strong>注意:</strong>必须在更改配置前备份。此外,某些方法可能在共享主机上不可用。
检查当前限制
首先,让我们检查当前设置。在WordPress管理屏幕的"媒体" → "添加新媒体文件"页面上显示了当前上传限制。您也可以在"工具" → "网站健康" → "信息" → "服务器"部分中检查 <code>upload_max_filesize</code> 和 <code>post_max_size</code> 的值。
方法 1:在 <code>wp-config.php</code> 中配置
这是最简单的方法。在 WordPress 根目录下的 <code>wp-config.php</code> 文件中添加以下行。
// wp-config.php に追加(「編集が必要なのはここまでです」の行の上に記述)
@ini_set('upload_max_filesize', '64M');
@ini_set('post_max_size', '64M');
@ini_set('max_execution_time', '300');
@ini_set('max_input_time', '300');
这种方法使用PHP的<code>ini_set()</code>,所以根据服务器配置可能不会生效。特别是在<code>php.ini</code>中这些值被固定的环境中,不会有任何效果。
方法 2:使用 .htaccess 配置
如果你使用 Apache 服务器,可以在 <code>.htaccess</code> 文件中覆盖 PHP 设置。将以下内容添加到 WordPress 根目录中的 <code>.htaccess</code> 文件。
# .htaccess に追加
php_value upload_max_filesize 64M
php_value post_max_size 64M
php_value max_execution_time 300
php_value max_input_time 300
php_value memory_limit 256M
对于 Nginx 服务器,无法使用 <code>.htaccess</code>,必须在服务器配置文件中处理。
# Nginx の設定(/etc/nginx/conf.d/ 配下)
client_max_body_size 64m;
方法 3:使用 php.ini 配置
如果可以直接编辑服务器的 PHP 配置文件,这是最可靠的方法。在 <code>php.ini</code>(或 <code>.user.ini</code>)中写入以下内容。
; php.ini に追記
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
max_input_time = 300
memory_limit = 256M
在共享主机上,您可能无法直接编辑 <code>php.ini</code>。在这种情况下,在WordPress根目录中创建 <code>.user.ini</code> 文件并写入相同内容可能会生效。
<strong>注意:</strong>将 <code>post_max_size</code> 设置为大于 <code>upload_max_filesize</code> 的值。<code>post_max_size</code> 是整个表单数据的限制,除了文件本体外还包括表单字段和开销。
方法 4:使用 functions.php 配置
这是在主题的 <code>functions.php</code> 中添加过滤器的方法。由于更新主题时设置会丢失,我们建议使用子主题或自定义插件来实现。
// functions.php または カスタムプラグインに追加
@ini_set('upload_max_filesize', '64M');
@ini_set('post_max_size', '64M');
// WordPress のアップロードサイズフィルター
add_filter('upload_size_limit', function($size) {
return 64 * 1024 * 1024; // 64 MiB
});
// マルチサイトの場合
add_filter('upload_size_limit', function($size) {
return 64 * 1024 * 1024;
}, 20);
方法 5:使用托管面板配置
许多租赁服务器和托管服务允许从其控制面板(如 cPanel、Plesk、ConoHa 和 Xserver 等)更改 <code>PHP</code> 设置。
- 登录托管控制面板
- 查找 PHP 配置或 php.ini 设置菜单。
- 修改 <code>upload_max_filesize</code> 和 <code>post_max_size</code> 的值
- 保存设置,并根据需要重新启动PHP
这种方法最可靠,因为配置在服务器级别应用,所以不用担心被其他方法覆盖。
设置未应用时的检查要点
- 是否重新启动了网络服务器 (Apache/Nginx)?
- 如果使用PHP-FPM,是否也重启了PHP-FPM?
- 检查 CDN 或反向代理是否限制请求大小
- 在 WordPress 多站点中,网络管理屏幕的设置可能优先
- <code>post_max_size</code> 是否大于或等于 <code>upload_max_filesize</code>?
配置更改后的测试
更改上传限制后,务必用实际文件进行测试。DevLab 提供各种大小的测试文件。
- <a href="/ja/reference/wordpress-upload-limit/">WordPress 上传限制参考</a> — 各个主机环境的默认上传限制列表
- <a href="/ja/files/threshold/">边界值测试文件</a> — 在正好达到上限的大小处测试
- <a href="/ja/files/images/">图像测试文件</a> — 通过实际媒体上传进行验证
总结
提高 WordPress 上传限制有多种方法,但适用的方法取决于您的服务器环境。首先尝试在托管面板中进行配置;如果不可用,请使用 <code>.htaccess</code> 或 <code>php.ini</code>。进行配置更改后,使用 DevLab 的测试文件验证上传是否成功。
本文中可用的测试文件
- → <a href="/ja/files/threshold/" class="text-primary-600 dark:text-primary-400 hover:underline">边界值测试文件列表(9.9MB / 10MB / 10.1MB)</a>
- → <a href="/ja/files/images/jpg/" class="text-primary-600 dark:text-primary-400 hover:underline">JPEG 图像测试文件列表</a>
相关文章
- → <a href="/ja/blog/how-to-test-upload-limit/" class="text-primary-600 dark:text-primary-400 hover:underline">如何正确测试文件上传限制</a>
- → <a href="/ja/blog/mb-vs-mib-file-size/" class="text-primary-600 dark:text-primary-400 hover:underline">MB 和 MiB 不一样!文件大小单位的陷阱</a>