Debian 以其卓越的稳定性著称,且获得宝塔面板最佳的兼容性支持,在 Centos 7 停止支持后 Debian 成为了 WEB 服务器操作系统的不二选择。本文将详细介绍使用 Debian 与宝塔面板搭建 WordPress 服务器环境的详细步骤。
前言
在开始教程之前,首先检查一下服务器的硬件配置,推荐使用 2核 CPU、4G 内存或以上的云服务器/VPS/轻量云主机。
最新的宝塔面板(linux)分为稳定版与正式版,其稳定版每三年进行一次大版本升级,日常更新则以修复 Bug 为主不新增功能,而正式版则会不断添加新功能。如果是用于生产环境的话,推荐使用稳定版,喜欢尝鲜的用户考虑正式版。
安装 Debian 系统且升级集成的软件
稳定性是 Debian 系统的优势,然而更新升级缓慢则是它被广大用户吐槽的重点。对于 WordPress 应用而言,这方面几乎没有问题,因为 WordPress 不依赖操作系统提供的额外功能。不过全新安装的 Debian 系统依然建议升级系统中的所有软件包,至少可以提升安全性。
安装 Debian 系统的步骤这里略过,因为几乎所有的主机提供商都有提供一键安装服务。
系统安装完毕后,首先使用 root 用户远程登录服务器,一些大厂的控制台中是提供网页版的远程登录的。或者使用 PuTTY 之类的第三方 SSH 客户端软件,但切记必须从其官网下载,不要使用不可靠来源的 SSH 客户端以确保服务器安全。

登录成功后,可见如上提示信息。
首先使用 apt list --upgradable
命令检查一下可升级的软件包,然后再用 apt full-upgrade
命令升级所有软件包。
提示:apt upgrade
与 apt full-upgrade
都可以升级所有软件包,其区别在于后者会在必要的时候安装额外的软件包或卸载无用的软件包,如果是配置好所有环境后,以后升级则建议使用前者,全新安装的系统建议使用后者。
挂载并初始化数据磁盘
如果主机有额外的数据盘,需要挂载并初始化磁盘。具体操作方法建议以云服务商提供的支持文档为准。以腾讯云轻量云主机为例:初始化场景介绍及操作指引。
启用 Swap 内存
Swap 内存(交换空间)可以简单理解为用磁盘空间虚拟内存,启用 Swap 并不会直接加速服务器但它可以增加内存空间,避免一些特定情况下因内存不足而造成服务器卡顿或死机。
具体启用方法见:Swap 内存:是什么?Linux 服务器如何使用它?
安装宝塔面板
以下是宝塔面板稳定版 9.0.0 的 Debian 安装脚本,未来版本可能发生变化,可在此处查看最新版的安装指令。
wget -O install.sh https://download.bt.cn/install/install_lts.sh && bash install.sh ed8484bec
当看到如下提示信息时说明安装完毕且成功:

这时候先不着急登录面板,可使用命令行将登录端口、用户名与密码登信息修改一下。
- 修改用户名的指令:bt 6
- 修改密码的指令:bt 5
- 修改面板端口:bt 8,这里输入新的面板端口后,需要在服务商的控制台中将该端口添加放行否则不可使用。
- 修改安全入口:bt 28,例如:/abcd
以上修改完毕后,使用 bt 14
命令查看当前(修改后)的登录信息并记录好,保险起见先使用 reboot
重启系统,重启完毕后再进入面板界面。

设置宝塔面板
安装 Nginx、PHP 等运行环境之前建议先针对宝塔面板进行一些设置,如默认建站目录与默认备份目录等,通常建议将这些路径设置在数据盘而非系统盘中,以免系统盘恢复快照时丢失网站与备份数据。

注意修改成自己数据盘的实际路径,具体路径参照挂载并初始化数据磁盘的操作步骤。
安装 ngx_brotli 模块
安装 Nginx 之前,强烈推荐先安装 ngx_brotli 模块,这样在 Nginx 中可开启 Brotli 压缩(比 Gzip 压缩效率更好)。
执行下列指令之前,请先确认系统中是否安装了 cmake 软件,如果没有可使用 apt install cmake
命令安装。
cd /www/server
git clone --recurse-submodules -j8 https://gitee.com/abuits/ngx_brotli
cd ngx_brotli/deps/brotli
mkdir out && cd out
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DCMAKE_C_FLAGS="-Ofast -m64 -march=native -mtune=native -flto -funroll-loops -ffunction-sections -fdata-sections -Wl,--gc-sections" -DCMAKE_CXX_FLAGS="-Ofast -m64 -march=native -mtune=native -flto -funroll-loops -ffunction-sections -fdata-sections -Wl,--gc-sections" -DCMAKE_INSTALL_PREFIX=./installed ..
cmake --build . --config Release --target brotlienc
echo "--add-module=/www/server/ngx_brotli" > /www/server/panel/install/nginx_configure.pl
这里给出的 ngx_brotli 模块安装源是国内镜像的,适合境内主机,如果是境外主机且需要github.com 原版镜像的话,可参考:Nginx 启用 QUIC 与 Brotli 的完整教程。
安装 Nginx、MySQL 与 PHP 等运行环境
Nginx、MySQL 与 PHP 是 WordPress 必需安装的,其它软件可选。
建议的安装顺序为:Nginx > MySQL > PHP > phpMyAdmin,尽量选择新版本安装。注意,服务器内存小于或等于 4G 不推荐安装 MySQL 8,可选择 MySQL 5.7。
安装完成后可能需要在服务商提供的控制台中开放相应的端口:80,443,3306。如果 MySQL 仅提供本服务器网站使用无需远程连接,则不建议开放 3306 端口。
优化 Nginx、MySQL 与 PHP 配置
为了使 WordPress 获得最佳性能,通常需要修改 Nginx、MySQL 与 PHP 的默认配置。
为 Nginx 配置 Brotli 压缩
这个步骤的前提是上文提到的 ngx_brotli 模块已安装成功。
对于 Nginx 而言,宝塔面板已默认对其进行了优化,只需将以下代码加入到 Nginx 配置文件中以开启 Brotli 压缩功能即可。
Nginx > 设置 > 配置修改,找到以下行:
gzip_disable "MSIE [1-6].";
在该行下方添加以下代码:
brotli on;
brotli_comp_level 5;
brotli_static on;
brotli_types application/atom+xml application/javascript application/json application/vnd.api+json application/rss+xml
application/vnd.ms-fontobject application/x-font-opentype application/x-font-truetype
application/x-font-ttf application/x-javascript application/xhtml+xml application/xml
font/eot font/opentype font/otf font/truetype image/svg+xml image/vnd.microsoft.icon
image/x-icon image/x-win-bitmap text/css text/javascript text/plain text/xml;
保存后,重启 Nginx。
MySQL 数据库优化
在 MySQL 5.7 及以上版本中,WordPress 通常会使用 InnoDB 引擎,所以应特别关注下列参数的值:
innodb_buffer_pool_size
:Innodb 缓冲区大小,这是提高 InnoDB 表性能的关键参数。tmp_table_size
:对于复杂查询和大数据集的排序和分组非常重要。join_buffer_size
:对于涉及多表连接的查询尤为重要。innodb_log_buffer_size
:对于频繁写入的场景至关重要。
设置上述参数的值时,需要考虑到服务器的内存,如果已开启 Swap 内存则可适当将各项值调大一些,只要不调高得离谱,不用太担心因内存跑满而宕机。如果 WordPress 数据较多,或计划使用 WooCommerce 、 Elementor Pro 等插件的话,此处优化尤为重要。
PHP 优化
WordPress 对 PHP 的性能依赖是很严重的,同时还需为 WordPress 安装一些 PHP 扩展。
先来看宝塔面板给出的 PHP 性能调整界面中给出的 4 个参数:max_children、start_servers、min_spare_servers、max_spare_servers,具体的优化建议如下:
- max_children:
- 根据服务器的内存和 CPU 资源来设置。一个常用的计算方法是每核分配 4-8 个工作进程,然后根据实际负载情况进行调整。
- 例如,如果服务器有 4 个 CPU 核心,并且每个进程消耗大约 100MB 内存,那么可以设置
max_children
为 16 至 32 之间。
- start_servers:
- 设置为
max_children
的 1/4 到 1/2 之间的值,以便在启动时有足够的进程处理请求。
- 设置为
- min_spare_servers 和 max_spare_servers:
- 这两个值通常设置为相近的数值,例如
min_spare_servers
设置为 10-15 之间,max_spare_servers
设置为 20-30 之间,以确保有足够的空闲进程处理新的请求,同时也避免资源浪费。
- 这两个值通常设置为相近的数值,例如
如果服务器上同时运行多个 WordPress 站点,建议将上述数值调大。
然后进入配置修改选项,如果您的主机有 4G 或以上的内存,可参考下图的设置:

如果内存小于 4G,可以将 memory_limit 的值适当减小,例如:256M、396M 等。这里的内存限制值不是 PHP 运行的总内存限制,而是每个 PHP 文件的最大运行内存限制。PS:现在知道开启 Swap 内存的的优势了吧?不然这么造迟早在访问高峰时因内存不足而卡死。
提示:max_execution_time 与 max_input_time 这两个值平时设置300秒是足够的,在使用 WordPress 导入主题模板或导入导出数据时可适当调大以避免操作失败,例如调至900秒,操作完成后再改回300秒。
接下来安装 PHP 的扩展:

如无特别需求,推荐安装 fileinfo、exif、imagemagick、redis 与 opcache 扩展即可。其中 Redis 对象缓存需要搭配 WordPress Object Cache Pro 插件使用。
最后一步修改配置文件(php.ini) ,点击左侧配置文件选项,找到 ;max_input_vars = 1000
行,去掉前面的 ; 符号,修改成:
max_input_vars = 3000
保存并重启 PHP。
总结
为 WordPress 安装服务器环境时应遵循以下原则:
- 非必要的软件不要安装,服务器安装的软件越多对于稳定性、安全性和性能等方面影响越大。
- 运行 WordPress 期间应观测服务器的 CPU 与内存占用情况。内存占用并不是越低越好,因为最佳的做法是尽可能使用内存缓存达到提升 WordPress 性能的目的,但内存占有率过高也容易产生问题,最佳的做法是平均值控制在 60% – 70% 之间。如果偏离太多,可以按照本文中关于参数优化的介绍做适当调整。
暂无评论内容