较低的WordPress上传限制可阻止您上传大文件,插件和主题。如果您要建立一个拥有大量多媒体资源的网站,那这将是一个很大的障碍。在这种情况下,有必要增加WordPress或服务器(或两者)中的最大上传大小。
也经常在WordPress交流群里看到站长咨询关于WordPress上传文件大小限制的问题,因此,我们有必要针对WordPress上传大小限制话题撰写一篇文章,以解众惑。
根据不同的服务器托管提供商和服务器,有很多方法可以解决此问题。我们将在本教程中尽可能全面地介绍设置WordPress最大上传大小限制。
- WordPress最大上传限制是多少?
- 如何检查WordPress当前最大上传限制
- 为什么要增加WordPress最大上传限制?
- 增加WordPress最大上传限制的10种方法
- 不要编辑 “wp-config.php” 文件
- 验证WordPress网站新的最大上传限制
WordPress最大上传限制是多少?
将大文件上传到服务器会消耗大量服务器资源。为了防止用户因上传文件造成服务器超时,WordPress默认的最大上传大小通常为4 MB到128 MB。通常,服务器托管提供商或者服务器软件在服务器级别设置此限制。
WordPress还包含定义此限制的常量,但在大多数情况下它们不能覆盖服务器级别的设置。
服务器默认最大上传文件大小,不同的服务器提供商有不同的设置,一般不会超过128MB。
要验证这一点,请转到WordPress网站的“媒体库”。在这里,尝试上传超出此最大上传文件大小限制的文件。您会看到一条类似以下内容的错误消息:
“超过了站点的最大上传限制”主要有两个原因:安全性和效率。这会阻止站点所有者和其他用户(包括恶意行为者)上传大文件(例如,高分辨率图像,大视频)。
否则,可能导致网站服务器无法使用,从而使网站无法正常运行。更糟糕的是,它可能会使网站彻底瘫痪!
如何检查WordPress当前的最大上传限制
有很多方法可以检查您的WordPress网站当前的最大上传限制,具体如下。
在媒体库中
检查网站当前最大上传限制的最便捷的方法是转到WordPress仪表盘,然后从此处转到媒体>媒体库。点击添加新文件按钮以启用媒体上传工具。
WordPress最大上传文件大小
国外部分服务器托管站点时,最大上传文件大小消息将显示在“选择文件”按钮下方。如果您使用其他网络托管服务提供商,则可能会在此处看到其他限制。
您也可以直接转到媒体>添加新内容,并在底部看到相同的消息。
WordPress媒体库中的“最大上传文件大小”
同样,您可以在此处看到最大128 MB的上传文件大小。
在站点健康信息中
WordPress 5.2添加了Site Health Info工具,以帮助您更好地调试WordPress网站。在这里,您几乎可以找到有关服务器和WordPress配置的所有信息。
由于服务器和WordPress都设置最大上传文件大小,在此界面上有两种方法可以找到最大上传文件大小值。
首先,您可以在“媒体处理”下拉列表中找到“最大单一上传文件大小”的值。
“站点健康”信息面板中的媒体处理设置
第二种方法是在“服务器”下拉列表可以看到与您的网站服务器设置相关的信息。找到“上传最大文件大小”的对应值,即你的WordPress的最大上传限制。下面截图的演示站点的最大上传文件大小限制为128 MB。
“站点健康”信息面板中的服务器设置
您还可以查看其他PHP常量及其值,例如:
PHP post max size
:定义POST请求的最大上传限制。PHP memory limit
:定义为PHP分配的内存。应将其设置为等于或大于最大上传限制。否则,上传将失败。
一般情况下配置越低的虚拟主机,这些选项所设置的值越小。这也是为什么小编常常建议站长尽可能选购VPS作为WordPress网站的服务器,因为允许站长自行配置这些选项的值。
为什么增加WordPress最大上传限制?
有许多原因可能导致您需要增加WordPress网站的最大上传文件大小,最常见的原因有:
- 通过WordPress管理仪表盘安装大型主题或插件。
- 定期更新WordPress网站内容以保持读者参与度并获得更多回报。这包括定期上传新图像,视频,音频和其他媒体。但是,当您的上传文件有大小限制时,这并不总是可行的。
- 上传大型视频或图像作为网站的背景或Header。
- 直接从站点出售数字文件,例如电子书,照片,视频,主题和插件。有时,这些文件高达数百兆字节(或更多)。
上面我们了解了WordPress最大上传文件大小的基础知识,下面让我们一起深入了解如何修改最大上传限制值。
增加WordPress最大上传文件大小的10种方法
我们可以通过多种方法来解决WordPress的最大上传大小问题,下面十种方法将由浅及深,或者由简单到复杂排列。
- 联系服务器托管提供商以获取帮助
- 在WordPress多站点中增加最大上传文件大小
- 更新 “.htaccess” 文件
- 创建或修改 “php.ini” 文件
- 创建或修改 “.user.ini” 文件
- 通过cPanel更改PHP选项
- 在Nginx中增加最大上传文件大小
- 使用WordPress的 “upload_size_limit” 过滤器
- 使用WordPress插件
- 通过FTP/SFTP上传文件
联系服务器托管提供商以获取帮助
如果您在上传文件文件大小限制方面遇到问题,请联系服务器托管提供商以寻求帮助,这是最快的解决方案之一。增加上传限制是一项技术支持的琐碎任务,因此大多数托管公司可以帮助您快速解决此问题。
修改服务器或站点配置文件对于不熟悉服务器配置的人们来说始终是一项艰巨的任务。因此,我们建议您首先尝试此方法。
注:一般虚拟主机,如需要修改WordPress最大上传限制值,可能甚至必须通过联系服务器提供商技术客服来修改。
在WordPress多站点中增加最大上传文件大小
如果您正在运行WordPress Multisite网络,则可以修改网络的最大上传文件大小。
首先,转到“网络管理”仪表板,然后转到“设置”>“网络设置”屏幕。在此处向下滚动,直到找到“上传设置”部分,您将会找到 Max upload file size
字段。
WordPress Multisite中的最大上传文件大小的默认值为1500 KB(〜1.5 MB)。您可以将其更改为更高的值,然后单击“保存更改”按钮。
注:您不能从此处规避服务器级别的最大上传大小限制。如果您在此处设置的限制高于服务器的最大上传大小限制,则服务器将忽略它。您可以使用上述方法来查找Web服务器的配置。
“网络设置”中新的“最大上传文件大小”
本次演示,我们将新的最大上传文件大小设置为131072 KB(〜128 MB)。
您还可以限制上传到多站点网络中单个站点的文件的总大小。一般默认情况下它是禁用的。
更新 “.htaccess” 文件
如果您的网站服务器在Apache上运行,则可以更新站点的.htaccess文件以增加WordPress最大上传大小。您可以在WordPress网站的根目录中找到.htaccess文件。
根据PHP文档,三个PHP指令负责WordPress处理上传的方式,分别是:
- upload_max_filesize
- post_max_size
- memory_limit
在上面的“站点健康信息”部分中讨论了它们。如果您修改了这三个指令的值以接纳您的文件大小,将会有所帮助。例如,如果您计划上传的最大文件是32 MB,我们建议您进行以下设置:
- upload_max_filesize = 32M
- post_max_size = 64M
- memory_limit = 128M
注意,所有值都使用M而不是MB。这就是PHP处理其指令的方式。
上传文件除了文件本身之外,还可以包含其他信息。因此,为所有其他与上传相关的指令提供一些预留的空间是个好主意。您可以阅读“如何解决WordPress内存限制错误(2种方法)”教程,以获取更多信息。
通过FTP/SFTP或服务器提供商的文件管理器访问.htaccess文件。
查找“ .htaccess”文件
使用文本编辑器或代码编辑器打开 .htaccess文件,然后添加以下代码:
php_value post_max_size 64M
php_value memory_limit 128M
php_value max_execution_time 300
php_value max_input_time 300
php_value upload_max_filesize 32M php_value post_max_size 64M php_value memory_limit 128M php_value max_execution_time 300 php_value max_input_time 300
您可以在上面的代码中注意到另外两个PHP指令:max_execution_time和max_input_time。它们定义服务器在一个PHP任务上花费的时间。您上传的内容越大,花费的时间就越大。您需要将它们的值设置为适合您的用例的数字。
注:使用上述方法后,您可能会收到500 Internal Server Error。这很可能是因为您的服务器正在CGI模式下运行PHP。在这种情况下,您不能在.htaccess文件中使用以上命令。
创建或修改 “php.ini” 文件
在php.ini文件中,您可以定义对默认PHP设置的更改。通常,它包含定义文件超时,最大上传大小和资源限制的指令。
使用SSH或FTP,您可以在WordPress根目录中找到php.ini文件。在某些情况下,您可能无法在此处找到它。不用担心!您可以在站点的根目录中创建一个具有相同名称的新文件。
创建一个新的php.ini文件
使用代码或文本编辑器,将以下代码添加到现有或新的php.ini文件中:
post_max_size = 64M
memory_limit = 128M
upload_max_filesize = 32M post_max_size = 64M memory_limit = 128M
进行更改后,请不要忘记保存文件。某些主机不允许您通过此方法修改PHP设置。在这种情况下,您可以继续尝试以下解决方案。
创建或修改 “.user.ini” 文件
如果服务器托管服务提供商已锁定了全局PHP设置,则他们可能已将服务器配置为使用.user.ini文件而不是php.ini文件。
与php.ini和.htaccess文件一样,您可以在网站的根目录中找到.user.ini。如果找不到,则可以在同一位置创建一个新的.user.ini文件。按照前面方法中描述的相同过程创建一个新的 php.ini文件。
接下来,将以下代码添加到您的.user.ini文件中:
post_max_size = 64M
memory_limit = 128M
upload_max_filesize = 32M post_max_size = 64M memory_limit = 128M
有没有发现,这只是重复了前面的方法,只是文件名不同。
通过cPanel更改PHP选项
如果服务器托管提供商使用cPanel控制面板来帮助您管理服务器和站点配置,则可以通过其界面更改最大上传文件的大小。
首先,请转到cPanel仪表盘,然后在“Software”部分下选择“Select PHP Version” 。
cPanel仪表盘-“选择PHP版本”
在这里,您可以更改服务器当前PHP版本并启用/禁用许多PHP扩展。单击导航菜单中的“Options”链接以转到“PHP Options”面板。
转到cPanel中的“ PHP Options”设置
向下滚动这里修改PHP指令,如值upload_max_filesize,post_max_size,memory_limit,max_execution_time,和max_input_time,您可以在此处可设置的最大值取决于您当前的服务器配置。
cPanel中的“ PHP选项”
如果您对这些值有任何疑问,建议您与托管服务提供商联系。最新的cPanel仪表盘会自动保存更改。但是,如果您使用的是较早的cPanel版本,请确保点击保存按钮以保存更改。
在Nginx中增加最大上传文件大小
Nginx是另一个类似于Apache的网络服务器,但它还有很多其他功能。通常,Nginx可以比Apache处理更多的并发请求,从而使其更快。闪电博也是使用Nginx解决方案。
如果您在Nginx上运行WordPress网站,则需要同时修改php.ini和nginx.conf文件。我们之前已经处理过前一个文件。后者称为Nginx配置文件。
在Nginx服务器上,您可以在找到php.ini文件/etc/php/7.4/fpm/php.ini。根据您安装的PHP版本,路径可能会略有不同。
post_max_size = 128M
upload_max_filesize = 64M post_max_size = 128M
您无需在上面的文件设置memory_limit,因为Nginx对它的处理方式有所不同。有关更多信息,您可以查看Stack Overflow这篇文章。保存php.ini文件后,去终端重新启动PHP-FPM,以启用更改:
sudo service php7.4-fpm restart
同样,重启PHP的指令代码可能会略有不同,具体取决于服务器上安装的PHP版本。
接下来,使用Nginx的client_max_body_size指令设置新的最大上传大小限制。您需要在nginx.conf文件中声明此指令,您可以在/etc/nginx/nginx.conf找到该文件。
您可以在http {...}
块,server {...}
块或location {...}
块中声明此指令。
在http块中进行设置会影响此服务器上托管的所有网站/应用。
…
client_max_body_size 128M;
}
http { ... client_max_body_size 128M; }
在server块中定义它只会影响此服务器托管的特定站点/应用程序。
…
client_max_body_size 128M;
}
server { ... client_max_body_size 128M; }
在location块定义则仅影响指定的目录(如文件,上传目录)。
…
client_max_body_size 128M;
}
location /files { ... client_max_body_size 128M; }
不要忘记保存文件并重新启动Nginx以应用更改,您可以在终端中使用以下命令重启NG:
sudo service nginx reload
部分服务器提供商不允许客户直接访问Nginx配置。但是,可以与支持团队联系更改。
使用WordPress的 “upload_size_limit” 过滤器
WordPress 2.5引入了upload_size_limit过滤器,该过滤器过滤php.ini中允许的最大上传大小。甚至WordPress都使用此过滤器来显示允许的最大上传大小,例如在“媒体库”和“站点健康信息”界面中。
以下是WordPress贡献者Drew Jaynes实际使用的此过滤器的示例。它定义了所有非管理员角色的上传大小限制。
* Filter the upload size limit for non-administrators.
*
* @param string $size Upload size limit (in bytes).
* @return int (maybe) Filtered size limit.
*/
function filter_site_upload_size_limit( $size ) {
// Set the upload size limit to 10 MB for users lacking the ‘manage_options’ capability.
if ( ! current_user_can( ‘manage_options’ ) ) {
// 10 MB.
$size = 1024 * 10000;
}
return $size;
}
add_filter( ‘upload_size_limit’, ‘filter_site_upload_size_limit’, 20 );
/** * Filter the upload size limit for non-administrators. * * @param string $size Upload size limit (in bytes). * @return int (maybe) Filtered size limit. */ function filter_site_upload_size_limit( $size ) { // Set the upload size limit to 10 MB for users lacking the 'manage_options' capability. if ( ! current_user_can( 'manage_options' ) ) { // 10 MB. $size = 1024 * 10000; } return $size; } add_filter( 'upload_size_limit', 'filter_site_upload_size_limit', 20 );
上面的代码使用WordPress的 manage_options 功能仅针对非管理员设置此限制。您可以修改代码以定位特定的用户角色或用户ID。
使用WordPress插件
并非所有人都喜欢使用SSH或FTP/SFTP来处理代码。如果您不习惯编写或编辑代码,则可以改用WordPress插件。
我们将在此处使用WP Maximum Upload File Size插件。撰写本文时,它是WordPress插件市场中唯一可帮助您完成此操作的最新插件。
首先,请安装并启用WP Maximum Upload File Size插件。点击WordPress管理后台左侧菜单的“Wp upload limit”,在这里,您可以看到托管提供商和WordPress设置的最大上传文件大小。
在这里,您可以看到WordPress设置的最大上传文件大小小于托管服务提供商设置的最大文件大小。因此,您可以通过选择最大上传文件大小并显示下拉菜单来设置更大的上传限制。
注:如果您要设置的最大上传文件大小上限大于托管服务提供商设置的上限,则无法通过此插件进行操作。为此,您需要联系您的托管服务提供商。
通过FTP/SFTP上传文件
不想使用上述所有方法?您还可以通过FTP/SFTP上传大文件。
如果要上传大量文件,这是最快的方法。
有时,WordPress无法识别通过FTP/SFTP上传的文件。在这种情况下,您可以使用免费插件- Add From Server将上传的文件导入WordPress。
或者,您可以通过使用WP-CLI导入图像,从命令行直接执行相同操作。wp media import命令允许您从本地文件或URL创建附件。
不要编辑 “wp-config.php” 文件
编辑wp-config.php文件不再起作用。之所以在这里提及它是因为我们发现许多网上教程都将其列为修改WordPress最大上传限制的合法方法。
该方法是通过FTP/SFTP或SSH进入站点的根目录,然后编辑wp-config.php文件。
建议您将以下代码添加到wp-config.php文件中:
@ini_set( ‘post_max_size’, ‘128M’);
@ini_set( ‘memory_limit’, ‘256M’ );
@ini_set( 'upload_max_size' , '64M' ); @ini_set( 'post_max_size', '128M'); @ini_set( 'memory_limit', '256M' );
它无法工作,因为您只能使用 ini_set() function来设置属于PHP_INI_ALL可变模式的PHP指令。
upload_max_size与post_max_size作为属于PHP_INI_PERDIR多变的模式。您只能通过php.ini,.htaccess,http.conf或.user.ini进行设置。
如果您以前尝试过此方法而没有看到任何结果,那么现在您知道它为什么会失败。
验证WordPress网站的新的最大上传限制
最后,我们需要验证WordPress网站中是否实现了新的最大上传文件大小限制。为此,请按照上面讨论的相同步骤检查WordPress中的最大上传文件大小。
转到WordPress信息中心中的媒体库,然后检查最大上传文件大小限制是否已更改。
是的,它已经改变了。那是成功的!
您也可以转到“站点健康”面板,然后在“媒体处理”和“服务器”下拉列表中检查是否相同。
小结
如您所见,在WordPress中修改最大上传限制并不是太复杂。无论您是要构建大量媒体作品集网站还是要安装大型主题,只需知道要在哪里查找以及要使用哪些命令或工具即可。
在大多数情况下,与您的托管服务提供商联系就足够了。但是,如果您遇到麻烦的主机,我们将向您展示一些替代方法,您可以在迁移到更好的主机之前尝试一下。
上述有没有涵盖了所有你所需要的内容吗?您是否也曾经遇到了上载文件大小限制的情况,然后你是如何处理的?留言与我们一起深入交流。