这篇写的是「用宝塔装完 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 的页面配置:
#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 兜底。
讲清页面缓存与对象缓存分别处在请求链路的哪个位置,并记录 1Panel 环境下启用 Redis、多站隔离与常见报错的排查流程。