【06】WordPress建站优化系列教程 – 初始化设置

(返回课程列表)

在前面的课程中,我们已经完成了网站程序的安装与备份恢复。但因为还仅仅只是让它跑起来,有很多东西没有完善。所以,这一节,我们继续补充网站环境设置。

做完了这一节,后面基本就没有连服务器使用命令的操作了。

如果你不想看文字,可以直接点视频(但这一节的视频录得不太好,有一些必要流程没有讲全):

PHP 扩展模块修复

第一个需要完善的设置,就在我们网站后台首页的健康 (“site health”)提示面板:

wordpress-tutorial-06-dashboard-site-health-warning

如上图所示,后台一登进去,仪表盘(即 Dashboard)就有一个面板,这里一般会有一些警告。警告的主要内容是,我们之前安装 PHP 环境的时候,遗留了一些扩展没装,所以要点进去处理下。

如果你在后台首页找不到上面这个面板,可以在左侧菜单的 Tools(工具)中找到:

wordpress-tutorial-06-tools-site-health

当然,如果你当时装网站程序的时候, AI 回答中的 php 扩展很全,或许已经不用再补充了。

没关系,不管是否需要补,我们都点进来看一下:

wordpress-tutorial-06-site-health-critical-issue-overview

如上图所示,刚才的面板点开后,就看到了严重问题(critial issue),再展开该项(“至少有一个必要的扩展未安装”),就看到了红圈中的一大票 module(扩展)没有安装的警告。

你之前如果是抄的我的作业,这里肯定也有类似的报错。

现在,我们就把这些错误提示复制下来,粘贴到之前的 AI 对话中,继续问它:

新装的WP后台,有如下警告提示:

“Warning The optional module, curl, is not installed, or has been disabled.

Warning The optional module, dom, is not installed, or has been disabled.

Warning The optional module, imagick, is not installed, or has been disabled.

Warning The optional module, mbstring, is not installed, or has been disabled.

Warning The optional module, zip, is not installed, or has been disabled.

Error The required module, gd, is not installed, or has been disabled.

Warning The optional module, intl, is not installed, or has been disabled.”

这回你就不用照抄黄师傅的了,你自己的后台报啥错,你就给它粘贴啥错。对于纯小白来说,这也是你练习使用 AI 的机会。

像黄师傅这里,AI 就建议优先安装必要的扩展 gd 模块(这个如果不装,你的媒体库,或者产品缩略图就会出问题)。

所以,我会继续连接服务器,然后粘贴该扩展的安装命令:

sudo apt install php-gd -y
wordpress-tutorial-06-install-php-gd

安装好之后,AI 会接着提醒我们安装更多扩展。于是,我们粘贴:

apt install php-curl php-dom php-imagick php-mbstring php-zip php-intl -y
wordpress-tutorial-06-install-more-php-modules

如上图所示,这些扩展的后缀也许你之前已经见到过了,其实是我们在装程序的时候就应该弄好的,但黄师傅当时考虑到每个人的 AI 交互情况都不同,所以干脆现在统一补上来。

还剩一个 imagick 模块,我们继续复制:

apt install imagemagick -y

会看到:

wordpress-tutorial-06-install-php-imagick

这里的扩展安装命令,AI 给你什么,你照着粘贴就是了。

等装好了这一个,再用命令检查下有没有装好:

php -m | grep -E 'curl|dom|gd|imagick|mbstring|zip|intl'

这是 php 自带的命令工具,-m 参数是 module 的缩写,能让我们看到所有已启用的扩展模块。但因为这个模块列表有很多,所以我们使用了管道符 “|”,后面跟上了正则筛选,精准过滤出刚才装的模块。

所以,回车执行后,正常情况下,我们能看到:

wordpress-tutorial-06-check-installed-modules

如上图所示,结果中的模块列表,应该和我们过滤查找的一致,如果少了,就是没装完全。

等这里确认完毕之后,再重启 apache 服务,让刚才的改动在网站上生效:

systemctl restart apache2
wordpress-tutorial-06-restart-apache2

重启完成后,再回来一开始的 site health 网站健康面板:

wordpress-tutorial-06-recheck-site-health-overview

这样,php 扩展问题就解决了。

域名统一 www

接下来的设置,是让域名统一带 www,或者不带 www. 带还是不带,就看你自己,没有绝对的好歹。

如果不做统一,一方面会对客户的体验不太好(有时候带 www,有时候不带,就会造成信息不一致的感觉),另一方面会对后面的搜索引擎带来规范化判定问题。

要统一 URL 中的 www 前缀,其实很简单。直接在后台的侧栏菜单中,依次点开 “Settings(设置)” -> “General Settings(通用)”,然后,在 “WordPress Address (URL)” 和 “Site Address (URL)” 中,手动填好你的首页 URL 就行了:

wordpress-tutorial-06-site-url-setting

如上图所示,你自己手动把这两个地方填好就行了。

填好保存,再刷新页面,你就能在浏览器地址栏上看到期望的 URL 形式了。如果你跟黄师傅一样,设置成了带 www 的,现在就算你手动把 www 去掉,刷新访问,它也会自动加上去。

好,这个小的设置就完成了。

设置完之后,我们再问一下 AI:

好的,除了上述问题修复之外,还有哪些,是新装了WP之后,需要补充安装,或设置的?

于是,我们就得到了包含一系列设置的答案:

wordpress-tutorial-06-more-performance-settings-overview-2

如上图所示,黄师傅的 AI 答案中,就包含了安全、性能、SEO、服务器、运维、配置等方面的设置。

你的答案或许不同,但别担心,核心的部分都是大同小异的。当然,还是那句话,如果你是一路跟着黄师傅的文字版操作下来的,下面接着照抄也没问题。

接下来,我们就来逐个设置一轮。

安全加固

我们首先来看看 AI 给出的安全加固流程:

wordpress-tutorial-06-safety-setting-overview-1

如上图所示,这第一项说要限制后台登录为本机公网 IP。但因为全球的 IPv4 资源已经不够了,绝大多数情况下,我们没办法获得固定的公网 IP,所以,要是这里限制的太死,恐怕自己也登不进来了。

那这一条,我们就跳过,直接来到下一条:

wordpress-tutotial-06-safety-plugins

如上图所示,黄师傅的 AI 推荐装这两个安全插件,能帮你从不同层面防护下。其实更重要的是保持良好的密码设置习惯,以及避免不明来源的第三方安装包。

你们有需要就装下,我自己其实从来没用过。

我们接着往下看安全板块的建议:

wordpress-tutorial-06-xml-rpc-setting-ai-answer

如上图所示,接着 AI 让我们禁用 XML-RPC,这是 WP 程序里面的一个文件,它允许外部人员使用大批量的账号密码进行尝试登录,并可以通过古老的 Pingback 机制向另一台服务器进行请求/回应(所以有 DDoS 隐患)。

绝大多数情况下,我们用不到这个东西(例外之一就是 Jetpack 某些插件),所以禁用它,反倒还安全些。

那我们还是操作下。继续使用 nano 编辑器,打开之前设置过的本网站的 apache 程序配置文件:

nano /etc/apache2/sites-available/wordpress.conf

注意,你的配置文件可能不叫 “wordpress.conf” 这个名字,如果你 nano 编辑的时候,打开发现是一个空文件,或者报错,那就回去 04 节中的“第五步:配置 Apache 虚拟主机”,看看当时编辑的是哪里。

打开该文件之后,光标定位到靠下方的区域,然后复制这一段上去:

<FilesMatch "^(xmlrpc\.php)">
    Require all denied
</FilesMatch>
wordpress-tutorial-06-disable-xml-rpc-nano

如上图红圈中所示,我们把这段内容粘贴到 </VirtualHost> 结尾标签的上面。然后 Ctrl + O 保存,Ctrl + X 退出编辑器。

接着,重启 Apache 服务:

systemctl restart apache2

重启完成后,进入下一项。

性能优化

性能上的第一项优化就是启用 PHP 自带的缓存模块,OPcache.

说起缓存,一共有好几种。我们等下把能优化的缓存都设置一下,这样会让访问更顺畅一些。

启用 PHP OPcache

现在,先使用 nano 编辑器,打开我们的 php 配置文件。这个文件的路径有点特殊,它的路径里面有个版本号,需要我们根据自己的版本来确定:

wordpress-tutorial-06-php-ini-directory

如上图所示,无论是黄师傅的视频里面,还是你的 AI 答案中的这个路径里面的版本号,可能都会和你自己的不同,所以需要你自己事先确定它究竟是 8.x,然后再进去编辑。

确定版本号的方法有几种。第一种就是直接输入:

php -v

上面这个 -v 参数是 version 的简写。这样,就看到了实际的版本号:

wordpress-tutorial-06-php-version

如上图所示,我们看到当前 PHP 版本是 8.2.28.

第二种办法就是手敲路径,敲到 /etc/php/ 的时候,按 2 下 Tab 键,通过 bash 的自动补全特性,确定下 PHP 版本:

wordpress-tutorial-06-tab-quick-type-php-version

第三种办法就是我们直接 ls 查看一下 /etc/php 路径,看它下面是多少:

wordpress-tutorial-06-ls-etc-php

如上图所示,我另外一台机器上的 OS 是 Debian 13,所以对应的 PHP 版本就高一些,是 8.4.

确定好了版本号之后,然后再根据你实际的版本号,替换这条编辑命令:

nano /etc/php/8.2/apache2/php.ini

打开这个 php 配置文件之后,默认长这个样子:

wordpress-tutorial-06-php-ini-overview

如上图所示,如果你打开之后,发现是一个空文件,那肯定是路径里面的版本号不对。

另外,这个文件内容是很长的,我们上下翻找就很麻烦,所以要使用到下面功能选项中的 Ctrl + W 键来进行快速查找。

于是,我们输入 Ctrl + W,然后看到白条,接着输入 opcache.enable:

wordpress-tutorial-06-nano-search-opcache

如上图所示,输完回车。这样就找到了它:

wordpress-tutorial-06-opcache-search-result

如上图所示,回车之后,高亮区域(绿线所示),就是搜索找到的目标。

注意看前面的那些英文半角分号 (;),它们是注释,加了注释的配置文字内容,都是不生效的。

所以紧接着,我们就要根据 AI 的提示,往下找到应该启用的那些条目(下面的三条都在 “opcache.enable” 附近),并删除它们前面的分号注释:

如上图所示,我们一个个删除它们前面的英文分号,开启它们。

按照 AI 回答截图,需要启用的选项为:

opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000
opcache.revalidate_freq=200

其中最下面的 revalidate_freq 默认值是 2 秒,AI 建议我们改成 200 秒,以稍微减轻服务器压力。

删完之后按 Ctrl + O 保存,再按 Ctrl + X 退出。接着,重启 Apache,让刚才的变动生效:

systemctl restart apache2

重启完成后,php 缓存就设置完成了。

安装页面缓存插件

前面我们说过,缓存有好几种,刚弄完 PHP 的缓存,我们接着弄下页面缓存。这个直接装插件就行了。

黄师傅常用的缓存插件是 W3 Total Cache 的免费版。但如果你有预算,可以装更强大的 WPRocket.

其他博主可能会推荐你在某宝上买破解版程序/插件,但你自己的网站数据重要,最好不要为了省钱,冒险去买不明来历的安装包。

我们点开菜单中的 “Plugins(插件)” -> “Add Plugin(添加插件)”,再搜索 “W3 Total Cache”:

wordpress-tutorial-06-install-w3-total-cache-plugin

如上图所示,我们搜到这个插件(搜索框在右侧,截图之外)之后,安装好,再点一下这个 activate 按钮激活启用。

启用之后,左侧栏菜单里面就多一个 “Performance” 选项,我们点开它,就来到了该插件的初始化设置界面:

wordpress-tutorial-06-w3-total-cache-performance-dashboard

如上图所示,点开之后,我们就开始在右边的主界面中进行速度测试,以及一系列设置。

首先,点击 Accept 接受它的协议:

wordpress-tutorial-06-w3-total-cache-settings-1

接着点右下角的 “Next”,来到 Page Cache,即页面缓存。我们点击蓝色 “Test Page Cache” 先测试:

wordpress-tutorial-06-w3-total-cache-settings-2

每个人的测试结果都不一样,但应该都是大同小异。像黄师傅的,测完就是这样:

wordpress-tutorial-06-w3-total-cache-page-cache-3

如上图所示,跑完测试之后,它会告诉我们,各个选项的性能表现。

图中第一条红线所示,是默认啥都不做的情况,也是当前的选项。没有缓存的情况下,我们的测试资源加载出来,耗时 57.26 毫秒。

图中第二条黄线所示,是基本磁盘缓存,在有基本缓存的情况下,测试资源加载出来只耗时 9.69 毫秒,速度快了 83.07%.

图中第三条蓝线所示,是增强磁盘缓存,这个就更厉害,只要 7.83 毫秒。同时这也是推荐选项。

图中第四条灰线所示,是 Redis 缓存,耗时 9.02 毫秒。

黄师傅视频演示的时候,没有改动这里,实际上,我们应该选到第三项,启用增强磁盘缓存。这是该插件的招牌功能,我们装它就是冲着这条选项来的。

选好第三项之后,再点击右下角的 Next,来到下一项 Database Cache,也是跟刚才一样,点一下测试按钮。等它测试出来,就是这样子:

wordpress-tutorial-06-w3-total-cache-database-cache

跟上面一样,插件也把各项的测试表现给我们看了,但这次,可选的两项性能提升都不怎么样,有一项甚至还在帮倒忙。

但因为我们还没有部署 Redis 服务,加上后面的对象缓存其实比现在的数据库缓存更加强大,所以这里其实可以直接跳过,点击右下角下一步就行。

来到下一项,测试对象缓存:

wordpress-tutorial-06-w3-total-cache-object-cache-test

也是跟上面一样,跑完发现下面优化项目的速度提升并不明显,这其实是因为我们还没有装 Redis 服务,或者测试资源不够典型。

没关系,因为这个对象缓存面板,和我们后面要装的 Redis 有点冲突,所以我们这里维持原样还好些。要不然,等后面我们也许会持续看到这种报错:

wordpress-tutorial-06-w3-total-cache-obejct-cache-error

于是,上面 Object Cache 里面这一项就不做更改,直接点 Next 下一步,来到 Browser Cache,浏览器缓存:

wordpress-tutorial-06-browser-cache-settings

如上图所示,这里默认是开启的,不过服务器响应头没有带上缓存指令,等于没起作用。但现代浏览器自带的缓存机制就比较合理了,这里我们就不管他了。

继续下一项,Image Optimization,图片优化:

wordpress-tutorial-06-w3-total-cache-image-optimization

如上图所示,这里有个启用 WebP 转换的选项,默认没有勾选。WebP 是一个很优秀的图片格式,主要是很省空间。但黄师傅自己的倾向是,不要勾选它。因为默认批量压缩/换格式,有可能会生成出预期之外的图片效果。

更重要的是,它不利于我们养成随手压缩图片的习惯。很多 Shopify 主题,就是自动启用了这个选项的,但大部分 Shopify 的运营人员的图片优化习惯都不好,自己传上来的 banner 图很大,往往又还不自知。这样的话,再好的插件与功能也救不了这种坏习惯。

好,我们往下走,Lazy Load,懒加载:

wordpress-tutorial-06-w3-total-cache-lazy-load

这个选项可以让我们在页面图片很多的情况下,用户一边滚动屏幕,一边慢慢加载图片(最典型的例子就是 Pinterest)。说白了,这个机制比较节省资源,也有利于用户体验。我们可以按需勾选。

接下来,是上面的选项总结,以及其他选项:

wordpress-tutorial-06-w3-total-cache-more-options

上面是黄师傅视频里面的截图。可以看到,我并没有在 page cache (页面缓存)那一项里面做出最优选择。你们应该选它推荐的那一项 “Disk: Enhanced” (增强磁盘缓存,即第三项)才对。

选好之后,再次点击右下角的 Dashboard,就完成了这个插件的设置,后面的页面缓存也就自动实时生效运作了。

这种页面缓存插件,会带来一个通用的问题,就是网站做着做着,偶尔会突然“坏掉”——可能会出现如导航栏不折叠了,Logo 突然变大,Banner 错位等等样式问题。

这种情况下,我们首先就要回来 Performance 面板首页,点一下清除缓存(即 “Empty All Caches”)按钮:

wordpress-tutorial-06-w3-total-cache-empty-all-caches

清除完缓存之后再刷新,与之相关的样式毛病都会消除。

基于同样的考虑,本来我们这里要接下来部署 CDN 的,但因为 CDN 也有可能会造成带来缓存问题,所以我们后面再做。

SEO 与基础内容设置

设置完页面缓存之后,我们来到 SEO 相关基础内容设置。

设置固定链接

首先把默认的链接形式改一改。当前情况下,凡是以 Post 形式存在的页面内容(如博文、临时着陆页等),它们的 URL 里面包含了发表时间(如 /2025/05/23/)。这看起来怪怪的,但在很久以前又确实很流行:

wordpress-tutorial-06-post-name-permalinks

如上图所示,当前的选项 “Day and name” 就是刚说的这种 URL 形式。

所以,我们要点开 “Settings (设置)” -> “Permalinks (固定链接)”,把它切换到 Post name 这一项。这样,URL 上就只有页面名称,看起来清清爽爽,也有利于搜索引擎理解爬行。

安装 SEO 插件

接着是安装 SEO 插件。现在 WP 里面的主要的 SEO 插件就两个:Rank Math 和 Yoast SEO,你随便装其中一个就行。黄师傅视频里面是装的 Yoast,反正我自己也是白嫖用户,这俩都差不多:

wordpress-tutorial-06-install-yoast-plugin

如上图所示,我们还是在左侧栏菜单中点开安装界面,然后搜索 Yoast,点击安装就行。

我们一般装插件,就在这个界面搜索安装。但其实还有一种安装插件的方法,就是上传压缩包(上图中的中央顶部就能看到上传按钮)。不过,这种压缩包很容易被夹带私货,所以,除非插件官网下下来的压缩包,其他任何第三方来源的东西,都不要轻易上传。

这才是网站出问题最可能的原因之一。

好,装完这个插件并启用之后,我们先不弄它。后面黄师傅的课程里面会专门介绍 Yoast 的常规用法。

禁用文章修订和历史版本

接着,我们需要设置下文章修订和历史版本。

默认情况下,我们编辑页面,或者博文时,右上角会有一个 Save draft 的超链接,能让我们保存草稿。

但是,就算我们不主动点保存按钮,它也会间歇性自动保存:

wordpress-tutorial-06-autosave

如上图所示,有过 WP 运营经验的朋友可能知道,这个自动保存比较碍事,有时候甚至还会让整个操作变得很卡。

所以,我们就要这么设置下,首先使用 nano 编辑器打开入口配置:

nano /var/www/html/wordpress/wp-config.php

不知道你还记不记得,我们其实在安装 WP 程序的时候,就已经编辑过这个入口配置文件。当然,那一步可以跳过。如果你还没编辑过这个文件,那现在就是第一次:

wordpress-tutorial-06-editing-wp-config-1

如果你打开后发现不是这样,或者是一个空文件,说明路径不对。这个 wp-config.php 文件位于 WordPress 程序根目录,我们之前新装与备份恢复的时候,多次进来过这个目录(详见第四节《4.3 设置 WordPress 程序入口配置》)。

在这个编辑界面,我们光标往下走,把下面这两句话添加上去:

define('WP_POST_REVISIONS', 3);
define('AUTOSAVE_INTERVAL', 3600); 

加的地方有讲究,一般加在该文件的底部靠上区域(有一句相应的注释下面):

wordpress-tutorial-06-add-custom-viariation-to-wp-config

如上图所示,黄师傅视频中加错了,应该是加在箭头所在位置。可以看到,箭头上面有一句注释,就是写着,我们自定义规则应该加在该行之下,”Stop Editting” 注释行之上。

如果像我视频里面加在最底下,这个常量是不会被解析的。黄师傅当时录视频的时候心里想着这个注释,但慌乱中加在了最末。特此勘误。

加好之后,我们的自动保存时间间隔就成了 3600 秒,即 1 小时,且存下来的历史版本,最多不超过 3 个。这是一个比较均衡的设置,你可以根据自己实际需要适当调整。

写完之后,Ctrl + O 保存,再 Ctrl + X 退出 nano 编辑器。

于是你就知道了,以后你编辑的页面与博文,自动保存间隔会变久。所以要养成随手按保存按钮(或 Ctrl + S 的习惯),要不然出去吃个饭,电脑断电了,你弄的东西就可能没了。

服务器端优化

接下来,是服务器端优化的相关设置。

配置 MySQL/MariaDB 性能

首先是设置下 MariaDB / MySQL 的资源分配。还是使用 nano 编辑器打开 MariaDB 的服务端配置:

nano /etc/mysql/mariadb.conf.d/50-server.cnf

打开该配置文件后,需要更改/新增下列内容:

[mysqld]
innodb_buffer_pool_size = 256M
key_buffer_size = 64M
query_cache_type = 1
query_cache_limit = 1M
query_cache_size = 64M

我们跟之前一样,为了确定现有的配置内容中是不是已经存在相关记录,就需要在在编辑器里面搜索第一项 “innodb_buffer_pool_size”, 所以,使用 Ctrl + W 查找栏中输入它:

wordpress-tutorial-06-mysql-server-settings-1

白条中输入搜索词,然后回车,就找到了该项设置所在的位置:

wordpress-tutorial-06-mysql-server-settings-2

如上图所示,我们看到该项设置被 # 注释掉了(php.ini 文件中,前面的 ; 是注释,但是这里,# 也是注释)。我们需要删除前面的井号 #,然后再把后面的值从默认的 8G 改到 256M.

改完之后,再在下面把应该补的内容粘贴上去(下面几条我帮你看过了,需要新增,现有的文件里面没有):

wordpress-tutorial-06-mysql-server-setting-3

如上图所示,粘贴好之后,按 Ctrl + O 保存,再按 Ctrl + X 退出 nano 编辑器。

退出 nano 编辑器之后,重启数据库:

systemctl restart mariadb

接着,我们开启下 Brotli/Gzip 压缩。启用之后,别人访问我们时,网站数据会被自动压缩,等传输到到浏览器后再解压,能提升一些加载性能。

启用方法比较简单,因为 Apache 中本身就自带了模块,我们直接:

a2enmod brotli deflate
wordpress-tutorial-06-enable-brotli-mod

enable 该模块之后,AI 告诉我们,需要再用 nano 编辑一下模块的配置。它让我们先编辑这个配置文件:

nano /etc/apache2/mods-available/deflate.conf

然后它让我们加上这些配置内容:

<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript application/json
</IfModule>

但黄师傅的视频里面,大家也看到了,这里其实不用改。因为直接进去这个文件,就能看到这一条配置。默认的配置写的还要好一些:

wordpress-tutorial-06-edit-deflate-mod-config

如上图所示,我们如果听 AI 的,又把这配置粘贴一遍的话,就做重复了。

所以,在 a2enmod brotli deflate 之后,我们直接重启服务就好了(不需要 nano 编辑上面的 conf 文件了):

systemctl restart apache2

重启完服务,这块优化就做完了。

维护与监控

黄师傅的 AI 说,我们可以使用脚本,自动化进行备份,然后还可以安装一些服务器资源监控工具。

但如我们之前所说,自动化备份对磁盘空间消耗比较快,如果我们不怎么参与,对于新手来说,很容易把服务器弄崩溃(因为你不知道使用脚本之后,服务器的磁盘每天都在快速缩小)。

另外,我们也不是专业的运维人员,所以这些技术性比较强的维护工作,暂时就不做了。如果你有兴趣,可以跟着 AI 练一练。这里就不演示了。

高级配置

剩下的 AI 答案内容推荐我们安装 Redis,这个是之前就提过的对象缓存,它能让数据库存取数据效率大大加速,所以,我们还是要简单部署下。

黄师傅的视频中罗嗦了一句,就是有些 WordPress 托管服务的初级套餐里面,连这个都没有:

wordpress-tutorial-06-no-object-cache

如上图所示,如果不带基本的对象缓存,还不让你自己装,这就是纯纯恶心你了。懂得都懂,就不说太细了。

所以这里要庆幸自己选择了自装修方案,服务器是自己的,想加功能就自己想办法部署。

首先,我们安装 redis 服务程序,以及对应的 php 扩展:

apt install redis-server php-redis -y

装好之后,AI 答案让我们编辑 redis 的配置文件,并把可用内存做一定的限制。黄师傅视频里面没有做,所以你这里可以设置一下:

nano /etc/redis/redis.conf

使用 nano 编辑器打开 redis 的配置文件之后,我们使用 Ctrl + W 搜索 maxmemory 选项:

wordpress-tutorial-06-search-maxmemory-in-redis-config

如上图所示,在 Ctrl + W 的对话框中输入 maxmemory, 然后回车,我们就找到了:

wordpress-tutorial-06-editing-redis-config-memory-settings-1

找到之后,我们这么改:

wordpress-tutorial-06-editing-redis-conf-maxmemory-2

如上图所示,我们后面给一个 256mb 就行,注意 “256” 与 单位 “mb” 之间是没有空格的,但它前面有个空格(如果你是英专生,不应该犯这个错,写作课教过)。

另外,要删除前面的注释符号 #,这样配置才生效。

注意了,黄师傅的 AI 答案里面,提示做到这里就完了,但你如果就这样保存退出的话,可能会遇到这个错误:

wordpress-tutorial-06-redis-connection-error

造成这个错误的原因,主要是你对 Redis 设置了最大可用内存,但又没有设置正确的淘汰策略,导致这 256M 很快就被键值对存满了。

所以,我们应该还要补一句策略,让它一边存,一边删,这样才能利用好这个可用内存。

接着在上面 maxmemory 256mb 处往下移动光标(使用键盘上的方向键),找到默认被注释掉的 maxmemory-policy,并作出如下更改:

wordpress-tutorial-06-change-redis-maxmemory-policy

如上图所示,默认这一句前面是有一个 # 注释符的,我们要删掉它,然后把默认的 noevinction 改成 allkeys-lru.

Eviction 的字面意思是驱逐,意思就是默认不清理没用的键值缓存,我们现在改成 allkeys-lru, 其中 lru 是 Least Recently Used,这样,就能及时把最近最少使用的键值对清理掉了。

做完这些后,按 Ctrl + O 保存更改, 然后按 Ctrl + X 退出 nano 编辑器。

编辑完之后,我们重启 redis 服务:

systemctl restart redis
wordpress-tutorial-06-systemctl-restart-redis

重启完之后,我们可以使用命令看一看,redis 服务是不是正在工作:

systemctl status redis

这样,就能看到它其实是正在工作的:

wordpress-tutorial-06-systemctl-status-redis

如上图所示,如果你也看到了 active 的绿色字,说明程序已经正常运行了。

如果你像上面一样,使用 nano 改了这个 Redis 的配置文件之后,还是报 Redis Connection 的错误,那就跟黄师傅视频里面一样,完全不改这个配置(把改好的那两句又加上 #,再重启 redis 服务),让它自行利用内存。这样虽然效率低点,但不需要怎么维护。

后台部署好 Redis 服务后,我们再来前台装一下插件。我视频里面有句备注,说不装也行,直接用 W3 Total Cache 里面的相关模块也一样。但后面试了下,还是另外装一个合适一点。

于是,我们还是在侧栏菜单中点开插件,然后新装界面,搜索 Redis:

wordpress-tutorial-06-install-redis-plugin

如上图所示,装这个红色图标的。装好并启用之后,在自动设置界面再次点击蓝色启用按钮之后就行了:

wordpress-tutorial-06-enable-object-cache-in-plugin

如上图所示,启用之后,状态就自动变成了这样:

wordpress-tutorial-06-redis-plugin-status

如上图所示,看到这信息就是一切正常了。图中的 Database:0 看起来很奇怪,但这其实是默认的 0 号逻辑分区,而不是说它没有连接到我们的数据库。

这样,对象缓存 Redis 就完全设置好,并正常运行了。

接下来 AI 让我们设置 SMTP 邮件,后面黄师傅会有专门章节讲这个,现在就先不弄。

增补设置 1:防火墙

接下来还有防火墙,黄师傅录教程的时候已经讲累了,就没带着做。我们还是简单做一下吧,毕竟能避免不必要的端口暴露。

首先,安装 ufw 防火墙前端工具:

apt install ufw
wordpress-tutorial-06-apt-install-ufw

装完之后,先不要启用它,而是放行 22 等端口,要不然,我们的远程连接是依赖的 22 端口,可能就会因此断掉(如果你不幸犯了这个错,就只能去腾讯云后台使用面板连服务器,然后再放行防火墙)。

所以,首先放行 ssh 端口(22):

ufw allow ssh

执行后,我们的 ssh 连接才能不断:

wordpress-tutorial-06-ufw-allow-ssh

接着,放行 HTTP 端口(80):

ufw allow http

我们大多数资源其实是走的下面的 443,但某些客户端的初次请求或者爬虫可能会用到 80. 另外,为了防止某些资源的路径被模板写死,还是放行一下:

wordpress-tutorial-06-ufw-allow-http

然后,再放行 HTTPS 端口(443):

ufw allow https

这是绝大多数网站资源的实际端口,如果不放行,网站肯定是访问不到的:

wordpress-tutorial-06-ufw-allow-https

如上图所示,当放行了这三个端口之后,我们就可以放心启用防火墙了。这样,就更安全了一些:

ufw enable

注意,我们回车执行的时候,它还会问我们,是不是要继续,因为无脑 enable 可能会让我们断开连接:

wordpress-tutorial-06-ufw-enable

但如前所述,我们确实已经提前放行了 ssh,所以果断输入 y,然后回车。这样就启用了防火墙,并且开机自启设置完毕。

然后,让我们想查看防火墙状态时,就直接输入:

ufw status verbose
wordpress-tutorial-06-ufw-status-verbose

如上图所示,执行之后就能看到当前的全局策略与已放行端口。这样就就很方便地看到了我们之前放行的服务与端口信息(不得不说这 ufw 前端工具太简洁了,比红帽系好用)。

增补设置 2:上传文件大小限制

黄师傅录这一集视频的时候,后面急着去做饭,当时就略掉了一些重要的设置。其实还有上传文件大小的配置没有改。

如果不改的话,紧接着的第 7 节装主题模板的时候就能看到有上传限制警告,另外,有粉丝已经告诉我,他们装东西时总会有一些奇怪的错误,导致装不上去。

退一步讲,别说插件/模板可能传不上来,但凡大一点的产品视频,或者 catalog,上传都会报错。主要原因就是这里没弄。

现在,我们再一次使用 nano 编辑器,修改 php 的主配置文件 php.ini:

nano /etc/php/8.2/apache2/php.ini

还是那句话,你要根据自己当前的 PHP 版本来确定中间路径里面是 8.2,还是其他的数字。否则,这个文件打开就是空的,或者根本找不到文件。

进去之后,按 Ctrl + W,然后搜索 “upload_max_filesize”:

wordpress-tutorial-06-search-upload-max-filesize

注意下划线也要输,输完回车:

wordpress-tutorial-06-edit-upload-max-filesize

如上图所示,这个后面的默认值很小,我们需要改大一点,像黄师傅这里就是设置成了 128M(你最好改到 256M)。

还有一个要改的地方。接着 Ctrl + W 查找 “post_max_size”:

wordpress-tutorial-06-search-post-max-size

回车之后,找到它,然后它的默认值也很小,我们也改大:

wordpress-tutorial-06-edit-post-max-size

如上图所示,这里我也是给的 128M,你们最好改到 256M.

这两个地方改完之后,Ctrl + O 保存,Ctrl + X 退出 nano 编辑器。

之后,重启 apache:

systemctl restart apache2

重启完再来到一开始左侧栏的 “Tools(工具)” -> “Site Health(网站健康)”,然后点开 “info(信息)”面板:

如上图所示,我们按照箭头顺序依次点开,最后展开下面的 “Server(服务器)” 信息菜单。展开之后,我们能看到:

wordpress-tutorial-06-server-info-about-file-size-upload-limit

如上图所示,Upload max filesize 和 PHP post max size 都已经改成 128M 了。如果你看到这里还是 8M 跟 2M,说明没改好。我们需要尽快改掉,要不然下一节装主题模板就可能会报错。

做完别忘了备份

好了,做到这里,我们的修修补补就弄得差不多了。如果你问了 AI,它可能还有其他的流程,如果不懂的话,继续追问它,再决定是不是要做。

当辛辛苦苦做了这些之后,别忘了做一次备份(用上一节的流程)。备份之前,需要删掉服务器里面已经存在了的 /home/backup 路径。

因为之前我们虽然已经把备份文件下载到了自己的电脑,但残留备份文件还在服务器上的 /home/backup 里面,如果不删,它会在你现在备份的时候又被打包进去,会增加将近一倍不必要的文件大小。

备份好之后,我们去下一节。

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *