月度归档:2022年05月

如何修改WordPress最大上传文件大小限制?

较低的WordPress上传限制可阻止您上传大文件,插件和主题。如果您要建立一个拥有大量多媒体资源的网站,那这将是一个很大的障碍。在这种情况下,有必要增加WordPress或服务器(或两者)中的最大上传大小。

也经常在WordPress交流群里看到站长咨询关于WordPress上传文件大小限制的问题,因此,我们有必要针对WordPress上传大小限制话题撰写一篇文章,以解众惑。

根据不同的服务器托管提供商和服务器,有很多方法可以解决此问题。我们将在本教程中尽可能全面地介绍设置WordPress最大上传大小限制。

WordPress最大上传限制是多少?

将大文件上传到服务器会消耗大量服务器资源。为了防止用户因上传文件造成服务器超时,WordPress默认的最大上传大小通常为4 MB128 MB。通常,服务器托管提供商或者服务器软件在服务器级别设置此限制。

WordPress还包含定义此限制的常量,但在大多数情况下它们不能覆盖服务器级别的设置。

服务器默认最大上传文件大小,不同的服务器提供商有不同的设置,一般不会超过128MB。

要验证这一点,请转到WordPress网站的“媒体库”。在这里,尝试上传超出此最大上传文件大小限制的文件。您会看到一条类似以下内容的错误消息:

Increase-Max-Upload-Size-WordPress-Error-1024x503-1

在WordPress中上传大文件时出错

“超过了站点的最大上传限制”主要有两个原因:安全性和效率。这会阻止站点所有者和其他用户(包括恶意行为者)上传大文件(例如,高分辨率图像,大视频)。

否则,可能导致网站服务器无法使用,从而使网站无法正常运行。更糟糕的是,它可能会使网站彻底瘫痪!

如何检查WordPress当前的最大上传限制

有很多方法可以检查您的WordPress网站当前的最大上传限制,具体如下。

在媒体库中

检查网站当前最大上传限制的最便捷的方法是转到WordPress仪表盘,然后从此处转到媒体>媒体库。点击添加新文件按钮以启用媒体上传工具。

WordPress-Media-Library-Add-New-Max-Upload-Size-Limit-1024x315-1

WordPress最大上传文件大小

国外部分服务器托管站点时,最大上传文件大小消息将显示在“选择文件”按钮下方。如果您使用其他网络托管服务提供商,则可能会在此处看到其他限制。

您也可以直接转到媒体>添加新内容,并在底部看到相同的消息。

WordPress-Media-Add-New-Page-Max-Upload-File-Size-Limit

WordPress媒体库中的“最大上传文件大小”

同样,您可以在此处看到最大128 MB的上传文件大小。

在站点健康信息中

WordPress 5.2添加了Site Health Info工具,以帮助您更好地调试WordPress网站。在这里,您几乎可以找到有关服务器和WordPress配置的所有信息。

由于服务器和WordPress都设置最大上传文件大小,在此界面上有两种方法可以找到最大上传文件大小值。

首先,您可以在“媒体处理”下拉列表中找到“最大单一上传文件大小”的值。

Site-Health-Info-WordPress-Media-Max-Size-Uploaded-File-1024x775-1

“站点健康”信息面板中的媒体处理设置

第二种方法是在“服务器”下拉列表可以看到与您的网站服务器设置相关的信息。找到“上传最大文件大小”的对应值,即你的WordPress的最大上传限制。下面截图的演示站点的最大上传文件大小限制为128 MB

Site-Health-Info-WordPress-Server-Uploaded-Max-Filesize-1024x808-1

“站点健康”信息面板中的服务器设置

您还可以查看其他PHP常量及其值,例如:

  • PHP post max size定义POST请求的最大上传限制。
  • PHP memory limit定义为PHP分配的内存。应将其设置为等于或大于最大上传限制。否则,上传将失败。

一般情况下配置越低的虚拟主机,这些选项所设置的值越小。这也是为什么小编常常建议站长尽可能选购VPS作为WordPress网站的服务器,因为允许站长自行配置这些选项的值。

为什么增加WordPress最大上传限制?

有许多原因可能导致您需要增加WordPress网站的最大上传文件大小,最常见的原因有:

  • 通过WordPress管理仪表盘安装大型主题或插件。
  • 定期更新WordPress网站内容以保持读者参与度并获得更多回报。这包括定期上传新图像,视频,音频和其他媒体。但是,当您的上传文件有大小限制时,这并不总是可行的。
  • 上传大型视频或图像作为网站的背景或Header。
  • 直接从站点出售数字文件,例如电子书,照片,视频,主题和插件。有时,这些文件高达数百兆字节(或更多)。

上面我们了解了WordPress最大上传文件大小的基础知识,下面让我们一起深入了解如何修改最大上传限制值。

增加WordPress最大上传文件大小的10种方法

我们可以通过多种方法来解决WordPress的最大上传大小问题,下面十种方法将由浅及深,或者由简单到复杂排列。

  1. 联系服务器托管提供商以获取帮助
  2. 在WordPress多站点中增加最大上传文件大小
  3. 更新 “.htaccess” 文件
  4. 创建或修改 “php.ini” 文件
  5. 创建或修改 “.user.ini” 文件
  6. 通过cPanel更改PHP选项
  7. 在Nginx中增加最大上传文件大小
  8. 使用WordPress的 “upload_size_limit” 过滤器
  9. 使用WordPress插件
  10. 通过FTP/SFTP上传文件

联系服务器托管提供商以获取帮助

如果您在上传文件文件大小限制方面遇到问题,请联系服务器托管提供商以寻求帮助,这是最快的解决方案之一。增加上传限制是一项技术支持的琐碎任务,因此大多数托管公司可以帮助您快速解决此问题。

修改服务器或站点配置文件对于不熟悉服务器配置的人们来说始终是一项艰巨的任务。因此,我们建议您首先尝试此方法。

注:一般虚拟主机,如需要修改WordPress最大上传限制值,可能甚至必须通过联系服务器提供商技术客服来修改。

在WordPress多站点中增加最大上传文件大小

如果您正在运行WordPress Multisite网络,则可以修改网络的最大上传文件大小。

首先,转到“网络管理”仪表板,然后转到“设置”>“网络设置”屏幕。在此处向下滚动,直到找到“上传设置”部分,您将会找到 Max upload file size 字段。

Network-Admin-Settings-Max-Upload-Size

“网络设置”中的“最大上传文件大小”字段

WordPress Multisite中的最大上传文件大小的默认值为1500 KB(〜1.5 MB)。您可以将其更改为更高的值,然后单击“保存更改”按钮。

注:您不能从此处规避服务器级别的最大上传大小限制。如果您在此处设置的限制高于服务器的最大上传大小限制,则服务器将忽略它。您可以使用上述方法来查找Web服务器的配置。

Network-Admin-Settings-Max-Upload-Size-New

“网络设置”中新的“最大上传文件大小”

本次演示,我们将新的最大上传文件大小设置为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-file

查找“ .htaccess”文件

使用文本编辑器或代码编辑器打开 .htaccess文件,然后添加以下代码:

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_timemax_input_time。它们定义服务器在一个PHP任务上花费的时间。您上传的内容越大,花费的时间就越大。您需要将它们的值设置为适合您的用例的数字。

注:使用上述方法后,您可能会收到500 Internal Server Error。这很可能是因为您的服务器正在CGI模式下运行PHP。在这种情况下,您不能在.htaccess文件中使用以上命令。

创建或修改 “php.ini” 文件

php.ini文件中,您可以定义对默认PHP设置的更改。通常,它包含定义文件超时,最大上传大小和资源限制的指令。

使用SSH或FTP,您可以在WordPress根目录中找到php.ini文件。在某些情况下,您可能无法在此处找到它。不用担心!您可以在站点的根目录中创建一个具有相同名称的新文件。

upload-max-filesize-3

创建一个新的php.ini文件

使用代码或文本编辑器,将以下代码添加到现有或新的php.ini文件中:

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文件中:

upload_max_filesize = 32M
post_max_size = 64M
memory_limit = 128M

有没有发现,这只是重复了前面的方法,只是文件名不同。

通过cPanel更改PHP选项

如果服务器托管提供商使用cPanel控制面板来帮助您管理服务器和站点配置,则可以通过其界面更改最大上传文件的大小。

首先,请转到cPanel仪表盘,然后在“Software部分下选择“Select PHP Version” 。

cPanel-Select-PHP-Version

cPanel仪表盘-“选择PHP版本”

在这里,您可以更改服务器当前PHP版本并启用/禁用许多PHP扩展。单击导航菜单中的“Options链接以转到“PHP Options面板。

cPanel-PHP-Selector-Screen

转到cPanel中的“ PHP Options”设置

向下滚动这里修改PHP指令,如值upload_max_filesizepost_max_sizememory_limitmax_execution_time,和max_input_time,您可以在此处可设置的最大值取决于您当前的服务器配置。

cPanel-PHP-Options-Max-Upload-Size-Setting

cPanel中的“ PHP选项”

如果您对这些值有任何疑问,建议您与托管服务提供商联系。最新的cPanel仪表盘会自动保存更改。但是,如果您使用的是较早的cPanel版本,请确保点击保存按钮以保存更改。

在Nginx中增加最大上传文件大小

Nginx是另一个类似于Apache的网络服务器,但它还有很多其他功能。通常,Nginx可以比Apache处理更多的并发请求,从而使其更快。闪电博也是使用Nginx解决方案。

如果您在Nginx上运行WordPress网站,则需要同时修改php.ininginx.conf文件。我们之前已经处理过前一个文件。后者称为Nginx配置文件。

在Nginx服务器上,您可以在找到php.ini文件/etc/php/7.4/fpm/php.ini。根据您安装的PHP版本,路径可能会略有不同。

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块中进行设置会影响此服务器上托管的所有网站/应用。

http {
client_max_body_size 128M;
}

server块中定义它只会影响此服务器托管的特定站点/应用程序。

server {
client_max_body_size 128M;
}

location块定义则仅影响指定的目录(如文件上传目录)。

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 );

上面的代码使用WordPress的 manage_options 功能仅针对非管理员设置此限制。您可以修改代码以定位特定的用户角色或用户ID。

使用WordPress插件

并非所有人都喜欢使用SSH或FTP/SFTP来处理代码。如果您不习惯编写或编辑代码,则可以改用WordPress插件。

WP-Maximum-Upload-File-Size-Plugin

WP Maximum Upload File Size插件

我们将在此处使用WP Maximum Upload File Size插件。撰写本文时,它是WordPress插件市场中唯一可帮助您完成此操作的最新插件。

首先,请安装并启用WP Maximum Upload File Size插件。点击WordPress管理后台左侧菜单的“Wp upload limit”,在这里,您可以看到托管提供商和WordPress设置的最大上传文件大小。

WP-Maximum-Upload-File-Size-Plugin-Dashboard

WP最大上传文件大小设置

在这里,您可以看到WordPress设置的最大上传文件大小小于托管服务提供商设置的最大文件大小。因此,您可以通过选择最大上传文件大小并显示下拉菜单来设置更大的上传限制。

注:如果您要设置的最大上传文件大小上限大于托管服务提供商设置的上限,则无法通过此插件进行操作。为此,您需要联系您的托管服务提供商。

通过FTP/SFTP上传文件

不想使用上述所有方法?您还可以通过FTP/SFTP上传大文件。

kinsta-export-wordpress-site-sftp

使用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-file

查找wp-config.php文件

建议您将以下代码添加到wp-config.php文件中:

@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_sizepost_max_size作为属于PHP_INI_PERDIR多变的模式。您只能通过php.ini.htaccesshttp.conf.user.ini进行设置。

如果您以前尝试过此方法而没有看到任何结果,那么现在您知道它为什么会失败。

验证WordPress网站的新的最大上传限制

最后,我们需要验证WordPress网站中是否实现了新的最大上传文件大小限制。为此,请按照上面讨论的相同步骤检查WordPress中的最大上传文件大小。

转到WordPress信息中心中的媒体库,然后检查最大上传文件大小限制是否已更改。

Verify-Maximum-Upload-File-Size

验证“媒体库”中新的最大上传文件大小

是的,它已经改变了。那是成功的!

您也可以转到“站点健康”面板,然后在“媒体处理”和“服务器”下拉列表中检查是否相同。

Verify-Maximum-Upload-File-Size-Site-Health-Info-Screen

在“站点健康信息>媒体库”中验证新的最大上传文件大小

Verify-Maximum-Upload-File-Size-Site-Health-Info-Screen-Server

在“站点运行>状况信息>服务器”中验证新的最大上传文件大小

小结

如您所见,在WordPress中修改最大上传限制并不是太复杂。无论您是要构建大量媒体作品集网站还是要安装大型主题,只需知道要在哪里查找以及要使用哪些命令或工具即可。

在大多数情况下,与您的托管服务提供商联系就足够了。但是,如果您遇到麻烦的主机,我们将向您展示一些替代方法,您可以在迁移到更好的主机之前尝试一下。

上述有没有涵盖了所有你所需要的内容吗?您是否也曾经遇到了上载文件大小限制的情况,然后你是如何处理的?留言与我们一起深入交流。

VPS 云服务器能够做什么?

很早以前买一台VPS主要的功能就是翻墙,然后常年也仅仅是跑一个 Shadowsocks,后来渐渐的发现其实有一台服务器即使只有单核1G,也能够用来做很多事情。以前我也看过一些文章讲述如何充分利用起VPS,但大部分除了说自建网站,挂机刷 YouTube 赚钱外也都没有什么实质性的内容。而自从开始接触Docker,我渐渐的发现了很多服务,因此我自己搜罗了一些。当然其实 GitHub 上有一个 Awesome Selfhosted 这里面列举了成百上千种可以自己托管部署的服务,几乎可以代替掉日常生活中用到的80%的服务,可以自建 nextcloud 代替 Dropbox,可以用 WordPress 代替 Blogger,可以用 GitLab,gogs 代替 GitHub,你甚至可以构建自己的即时通讯,邮件服务,社交媒体1 等等。

当然这一切都无法离开一台可用稳定的VPS,并且借助Docker几乎可以做到无痛搭建,备份,迁移,不用在花费时间在环境和部署中。下面就分享一些我觉得很好用的服务,可以用来充分利用你的机器。

总得来说一般可以将 VPS 用于如下几类用途:

  • Web Hosting,托管网站
  • Back up data
  • VPN
  • Developing and Testing Code,自动跑 CI 程序

Web Hosting

wordpress

自建博客

linx server

文件共享服务,使用 Go 书写,可以用来快速分享本地文件给别人。支持 Web UI,也支持 API 上传。

h5ai

一款文件夹浏览,一般情况下开启 Nginx 允许浏览目录的设置也足够了,h5ai提供了一些额外的功能,比如二维码,搜索等等

gogs

一款较 GitLab 轻便的 Git 托管服务。

Drone

持续集成 CI

frp

内网穿透

qiandao

签到服务,binux 写的自动签到服务

pyspider

爬虫

自建DNS

无污染 DNS 服务器

  • AdGuard Home
  • pi-hole

jumpserver

作为跳板机 ssh 连接其他电脑用

aria2

aria2 挂机下载