这篇写的是「用宝塔装完 WordPress 之后怎么优化」,不是安装教程。

需要先说明:文中的环境是 PHP 7.4 + MySQL 5.7 + 宝塔面板,属于 2022 年的记录。如果你现在用 1Panel 和容器部署,看 WordPress 部署与运维 那组更合适;这篇的参考价值在于宝塔面板的各个设置页该看哪些指标。

环境

WordPress 6.0 官方给出的最低要求是 PHP 7.4+、MySQL 5.0+、1GHz CPU、512MB 内存、支持 HTTPS。带宽没有硬性要求,能访问就行。

我当时的配置:

  • PHP 7.4
  • MySQL 5.7
  • 4 核 CPU
  • 8 GB 内存

装完 WordPress 后,在面板左侧「软件商店 → 已安装」里能看到整套环境。下面逐个说。

Nginx

Nginx 是运行环境。相比 Apache,它效率更高、占用更少。

版本没有特别要求,首次安装宝塔时推荐的版本直接默认即可。

Nginx 本身没什么可优化的。调整它对 WordPress 的性能提升很有限,保持默认就行。

MySQL

数据库是这套环境里最值得调的部分。

内存小于 4G 时装不了 MySQL 5.7 这类高版本,不过 WordPress 支持 5.0+,不是必须上高版本。更高的版本易用性更好,但内存占用也更大。

在「性能调整」页顶部有「优化方案」,按服务器内存大小选一个预设。这个一键方案不一定贴合你的实际情况,可以在此基础上微调。

以下所有调整都需要保存后重启数据库再观察,不满足就继续加。

  • 活动峰值连接数:不大于 max_connections 即可。非常接近或已满,就加 max_connections,每次加 50。
  • 线程缓存命中率:不要低于 90%,低了就加 thread_cache_size,每次加 8。
  • 索引命中率:这是给 MyISAM 用的,低于 95% 就加 key_buffer_size,每次加 64。
  • InnoDB 索引命中率:给 InnoDB 用的,低于 95% 就加 innodb_buffer_pool_size,每次加 64。
  • 查询缓存命中率:如果已经用 Redis 或 Memcached 做缓存,query_cache_size 可以直接设为 0;否则保持默认。MySQL 后续版本已经移除了查询缓存,这项越来越不重要。
  • 创建临时表到磁盘:WordPress 本身优化过这一点,维持在 45%–50% 即可,控制它的参数是 tmp_table_size,适当增减 32。

后面几项(已打开的表、未使用索引的量、未使用索引的 JOIN、排序合并次数、锁表次数)都属于大数据量查询才会碰到的指标,小站可以忽略。

PHP

PHP 7.4 是当时 WordPress 官方推荐的版本,配置不差的话直接跟着官方走。

扩展

只需要装两个:opcache 和 Memcached。其他扩展基本可以忽略,Redis 扩展按需装。

opcache 缓存 PHP 字节码,省掉每次请求的编译开销,必装。Memcached 做对象缓存,配合插件使用。

配置修改

绝大多数保持默认,需要关注的几个:

  • max_execution_time:页面执行超时。设 60 或 90 即可。太短会把用户正常操作中断,太长会让异常插件长期占用进程,也更容易被恶意请求拖垮。我截图里演示用了 600,实际用的是 90。
  • max_input_time:解析输入数据的最大时间,影响大文件上传。没有视频等大文件上传的话,60 或更低就够。
  • memory_limit:单个脚本能用的最大内存。不超过 512M,常用 256M。太大反而会让有问题的脚本把服务器拖慢。
  • post_max_size:表单 POST 的最大值。256 已经很够,注意它要大于 upload_max_filesize。
  • upload_max_filesize:单文件上传上限。不传视频、软件的话 5M 够用,要传高清图可以设 20M。
  • default_socket_timeout:socket 流从建立到关闭的总超时。60 够用。

运行模式

「性能调整」里对应服务器内存选预设即可。

运行模式的「动态 / 静态 / 按需」——选动态就好,不要乱改。

这里补充一句后来的经验:如果你的站点访问量很低、内存又紧张,按需(ondemand) 其实更省内存,因为平时不保留待命进程。但宝塔的预设是按「动态」调的,切换前要自己确认参数,别直接套预设。

Swap

用「Linux 工具箱」加虚拟内存。

Swap 在物理内存吃紧时能缓解压力,但它比物理内存慢得多。极端情况下,原本 100 个线程 10 秒能干完的活,因为一部分被换到 swap,反而要更久。

现在的建站服务器最少也有 1–2G 内存,Swap 更适合应急兜底,不建议设得太大。1–2G 足够。

其他软件

装完 WordPress 后宝塔会带一堆应用,按需处理:

  • Nginx 免费防火墙:功能不多,用来做简单拦截
  • 日志清理工具:流量小的站可以不装;流量大的话一个季度或半年清一次
  • 宝塔 SSH 终端:功能很弱,建议用 Xshell 或 Windows Terminal
  • Pure-Ftpd:上古时期的传文件工具,不知道干什么的可以直接卸载
  • phpMyAdmin:在线管理数据库,留着备用
  • Memcached:对象缓存的管理面板,设置全部默认

注释掉面板自带的 404 页面

宝塔每个站点都自带一个 Nginx 404 页面,样式和网站完全不搭。可以在站点配置里把它注释掉。

打开网站面板,找到要修改的站点(多个站点需要分别设置,不能批量),点「设置 → 配置文件」,能看到 404 和 502 的页面配置:

NGINX
#error_page 404 /404.html;
#error_page 502 /502.html;

宝塔自己也提示了可以删掉或注释。为了以后可能用得上,用注释而不是删除——在每行最前面加英文 #,保存配置。

保存后如果没立即生效,重载 Nginx 或重启服务器。之后 404 就会走 WordPress 主题自己的 404 模板,样式和站点一致。

小结

宝塔这套面板把很多参数做成了可视化,好处是上手快,坏处是容易「照着预设点一遍」而不知道在改什么。

真正影响 WordPress 性能的就三处:PHP 的 opcache 与执行参数、MySQL 的 buffer pool 与连接数、以及缓存插件。其余都是锦上添花。

相关内容

一台 2 核 4G 的 VPS 承载 4 个 WordPress:从 PHP-FPM 的 ondemand 改造、MySQLTuner 诊断、MariaDB 参数收敛,到缓存分层、端口暴露检查和 swap 兜底。

VPSWordPress1Panel

搜索

开始搜索
↑↓
↵
ESC
Ctrl K快捷键