WordPress 是全球最流行的建站程序,生态丰富、插件成千上万,但也以「臃肿慢」出名。同样的机器,Typecho 秒开,WordPress 可能转圈三秒——差别就在优化。
这篇从安装讲到优化,覆盖 LNMP 环境、WordPress 安装、缓存、数据库、安全加固。目标是让 WordPress 在 2G 小服务器上也能跑得飞快。
需要云服务器可以看看财富云计算:NAT 型无独立公网 IP,价格比独立 IP 机型省一半以上,一键开服面板,主流游戏快速部署。
一、WordPress vs Typecho:先选对程序
| 对比 | WordPress | Typecho |
|---|---|---|
| 生态/插件 | 极丰富 | 较少 |
| 主题质量 | 高且多 | 轻量为主 |
| 资源占用 | 高(PHP + MySQL) | 低 |
| 上手难度 | 低(后台强) | 中 |
| 适合 | 企业站、电商、内容站 | 个人博客、技术文档 |
选型建议:要生态、要功能、要后台体验 → WordPress;纯写博客、机器小、追求轻 → Typecho(本站就是 Typecho)。选了 WordPress 就认真做优化,别抱怨它慢。
二、环境搭建:LNMP
安装组件
# Ubuntu 22.04 示例
apt update
apt install -y nginx mysql-server php8.1-fpm php8.1-mysql php8.1-curl \
php8.1-gd php8.1-mbstring php8.1-xml php8.1-zip php8.1-intl
# 确认版本
nginx -v
mysql --version
php -v配置 Nginx
server {
listen 80;
server_name 你的域名;
root /var/www/wordpress;
index index.php index.html;
# WordPress 固定链接支持(关键!)
location / {
try_files $uri $uri/ /index.php?$args;
}
# PHP 处理
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}
# 静态资源缓存
location ~* \.(jpg|jpeg|png|webp|css|js|svg|woff2)$ {
expires 30d;
add_header Cache-Control "public, immutable";
access_log off;
}
# 禁止访问敏感目录
location ~ /\.(ht|git|env) { deny all; }
location = /wp-config.php { deny all; }
location ^~ /wp-content/uploads/ {
# uploads 里的 PHP 禁止执行(防上传 webshell)
location ~ \.php$ { deny all; }
}
}配置 PHP-FPM(小机器参数)
; /etc/php/8.1/fpm/pool.d/www.conf
pm = dynamic
pm.max_children = 10
pm.start_servers = 3
pm.min_spare_servers = 2
pm.max_spare_servers = 5
pm.max_requests = 500 # 进程处理 500 请求后重启,防泄漏PHP 关键参数:
; /etc/php/8.1/fpm/php.ini
memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 60
; OPcache(性能翻倍的关键,必须开)
opcache.enable = 1
opcache.memory_consumption = 128
opcache.interned_strings_buffer = 16
opcache.max_accelerated_files = 10000
opcache.revalidate_freq = 2创建数据库
mysql -u root -p <<'EOF'
CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wp'@'localhost' IDENTIFIED BY '强密码';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wp'@'localhost';
FLUSH PRIVILEGES;
EOF三、安装 WordPress
# 下载
cd /tmp
wget https://cn.wordpress.org/latest-zh_CN.tar.gz
tar -xzf latest-zh_CN.tar.gz
mv wordpress /var/www/wordpress
chown -R www-data:www-data /var/www/wordpress
# 配置
cd /var/www/wordpress
cp wp-config-sample.php wp-config.php编辑 wp-config.php:
define('DB_NAME', 'wordpress');
define('DB_USER', 'wp');
define('DB_PASSWORD', '强密码');
define('DB_HOST', 'localhost');
// 安全密钥(去 https://api.wordpress.org/secret-key/1.1/salt/ 生成)
define('AUTH_KEY', '随机字符串');
// ... 共 8 行,全部替换
// 关掉文件编辑(防后台被拿后改主题)
define('DISALLOW_FILE_EDIT', true);浏览器访问域名,按向导填站点信息、管理员账号,装完。
四、性能优化:让 WordPress 快三倍
1. 页面缓存(收益最大)
WordPress 每个请求都要跑 PHP + 查数据库。页面缓存把渲染好的 HTML 存下来,直接吐给访客。
Nginx FastCGI 缓存(最推荐,不依赖插件):
# http 块
fastcgi_cache_path /var/cache/nginx/wp levels=1:2 keys_zone=wpcache:100m inactive=1d max_size=500m;
server {
# ...
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
fastcgi_cache wpcache;
fastcgi_cache_valid 200 301 302 1h;
fastcgi_cache_valid 404 1m;
fastcgi_cache_bypass $skip_cache;
fastcgi_no_cache $skip_cache;
add_header X-FastCGI-Cache $upstream_cache_status;
}
}
# 跳过缓存的规则(map 定义)
map $http_cookie $skip_cache {
default 0;
~*comment_author_ 1; # 评论过的访客
~*wordpress_logged_in_ 1; # 登录用户
~*woocommerce_items 1; # 购物车
}登录用户、评论者、购物车不走缓存,其他访客全部吃缓存。效果:动态请求从 500ms 降到 10ms。
插件方案(更简单):WP Super Cache 或 W3 Total Cache,后台点几下就行。小站够用,高负载还是 Nginx 缓存强。
2. 对象缓存:Redis
数据库查询是 WordPress 第二大开销。上 Redis 对象缓存:
apt install -y redis-server
# 确认只听本地、有密码(见 Redis 安全加固)
# 装插件: Redis Object Cache
# wp-config.php 加:
define('WP_REDIS_HOST', '127.0.0.1');
define('WP_REDIS_PORT', 6379);
define('WP_REDIS_PASSWORD', '你的Redis密码');插件里点 Enable,对象查询全部走 Redis 内存,数据库压力降 60%+。
3. 数据库优化
-- 清理垃圾数据(修订版本、自动草稿、垃圾评论)
DELETE FROM wp_posts WHERE post_type='revision';
DELETE FROM wp_posts WHERE post_status='auto-draft';
DELETE FROM wp_comments WHERE comment_approved='spam';
DELETE FROM wp_options WHERE option_name LIKE '_transient_%';
-- 优化表
OPTIMIZE TABLE wp_posts, wp_postmeta, wp_comments, wp_options;
-- 限制修订版本数量(wp-config.php)
define('WP_POST_REVISIONS', 5);定期清理挂 crontab,见MySQL 备份与优化。
4. 图片与静态资源
WordPress 自动生成多个尺寸的缩略图,很容易磁盘爆炸:
# 清理未使用的缩略图
du -sh /var/www/wordpress/wp-content/uploads/
# 装 WebP 插件(上传自动转 WebP,省 30% 流量)
# 装图片压缩插件(Smush/Imagify)详细的图片优化方法见网站图片与静态资源优化。
5. 插件与主题:少即是快
# 看哪些插件在拖后腿: 装 Query Monitor 插件
# 它会显示每个插件的加载时间和查询数原则:插件装一个删一个,功能重叠的留一个。20 个插件的站点和 5 个插件的站点,速度差一倍。主题选轻量的(Astra、GeneratePress 都比多功能主题快)。
6. 资源外移
- 头像用 Gravatar 镜像(
functions.php里替换www.gravatar.com为cn.gravatar.com) - 静态资源上 CDN(对象存储或 CDN 服务)
- Google 字体换国内镜像或本地化
五、安全加固
WordPress 是全网被扫最多的程序,必须加固:
// wp-config.php 安全项
define('DISALLOW_FILE_EDIT', true); // 禁后台文件编辑
define('FORCE_SSL_ADMIN', true); // 后台强制 HTTPS
define('WP_AUTO_UPDATE_CORE', 'minor'); // 小版本自动更新# Nginx 层防护
# 1. 隐藏版本信息
location ~ /wp-includes/.*\.php { deny all; }
# 2. 限制登录接口频率
location = /wp-login.php {
limit_req zone=login burst=3 nodelay;
# 或只允许自己的 IP:
# allow 1.2.3.4; deny all;
}
# 3. 禁 xmlrpc(爆破入口)
location = /xmlrpc.php { deny all; }必做事项:
- 管理员账号别用
admin,设强密码 - 装 Wordfence 或防暴力破解插件
- 主题插件及时更新
- 删掉不用的主题(
wp-content/themes/里只留用的) - 每日数据库备份
详细清单见WordPress 部署安全检查。
六、维护命令速查
# WP-CLI(命令行管理 WordPress,运维必备)
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar && mv wp-cli.phar /usr/local/bin/wp
cd /var/www/wordpress
sudo -u www-data wp plugin list # 插件列表
sudo -u www-data wp plugin update --all # 更新所有插件
sudo -u www-data wp core update # 更新核心
sudo -u www-data wp db export backup.sql # 导出数据库
sudo -u www-data wp cache flush # 清缓存
sudo -u www-data wp user create admin2 admin2@example.com --role=administrator批量更新可以挂 cron,配合巡检。
七、常见问题
Q:后台 502/504?
PHP-FPM 挂了或内存不够。看 systemctl status php8.1-fpm、free -h,调小 pm.max_children。
Q:固定链接 404?
Nginx 的 try_files 没配对(见上文配置),或者没开 rewrite。确认 location / 块有 try_files $uri $uri/ /index.php?$args;。
Q:上传图片报「上级目录没有写权限」?
chown -R www-data:www-data /var/www/wordpress/wp-content/uploads/Q:网站被注入垃圾内容?
多半是插件漏洞或弱口令。全盘扫描:对比文件哈希、看陌生管理员账号、查近期改动的文件。恢复用备份,然后按上面的安全清单加固。
Q:2G 小机器能跑 WordPress 吗?
能,但要克制:不开多站点、插件 ≤ 10 个、上 Redis + Nginx 缓存、图片走 CDN。纯内容站 2G 够, WooCommerce 建议 4G+。
小结
WordPress 优化的优先级:OPcache → Nginx 页面缓存 → Redis 对象缓存 → 数据库清理 → 精简插件主题 → 静态资源外移。前三项做完,速度就有质变;再配合安全加固和 WP-CLI 维护,WordPress 完全可以跑得又快又稳。
更多网站教程见财富云计算知识库:Nginx 配置、HTTPS、图片优化、CDN、Typecho 全系列。需要云服务器可以看看财富云计算:一键开服面板,NAT 型无独立公网 IP,价格比独立 IP 机型省一半以上。
延伸阅读
- 网站环境怎么选:LNMP 手动 / 宝塔面板 / Docker / 云开发
- 问卷表单系统搭建:SurveyKing / Formbricks,数据自己收
- 图床搭建:Lsky Pro / Lychee,自托管图片托管方案
- 邮件列表搭建:listmonk 自托管 Newsletter,把读者握在自己手里
- 文档站点搭建:MkDocs / VuePress / Docsify,产品文档与技术手册方案
- RSS 阅读器搭建:FreshRSS 自托管,把信息流拿回自己手里
- 短链接服务搭建:Shlink 自托管,链接数据自己掌握
- 网站状态监控页搭建:Uptime Kuma,服务器挂了第一时间知道

[...]}后台设置 → 固定链接选「文章名」即启用伪静态。主题和插件见WordPress 搭建与性能优化。4.2 Typecholocation / {[...]
2026-10-15 回复
[...]# 用 Nginx 指向 public 目录即可适合:爱写东西、爱折腾主题、不想维护数据库的人。安全方面几乎零负担——没有数据库可拖,没有后台可爆破。方案 B:Typecho(动态,轻量 PHP)国产轻量博客程序,PHP + SQLite/MySQL,几百兆内存搞定,后台体验好。完整教程:用云服务器搭建 Typecho 博客主题插件:Typecho 主题选择与插件推荐数据库用 SQLite 还是 [...]
2026-10-18 回复
[...]netsh advfirewall firewall add rule name="GameRange" dir=in action=allow protocol=UDP localport=26901-26903完整的 Windows 环境准备(远程桌面连接、运行库安装、SteamCMD 用法、开机自启、8 个常见坑)见:《Windows 云服务器开服通用前置教程》→ htt[...]
2026-10-18 回复
[...]# 备份 = 复制 usr/uploads + 一个 SQLite 文件,完事WordPress:见WordPress 搭建与性能优化完整指南,从安装到缓存加速全覆盖。Halo(Docker 一键):services:[...]
2026-10-18 回复
[...]php8.2-mbstring php8.2-xml php8.2-zip php8.2-intl php8.2-bcmath php8.2-soap安装细节见WordPress 搭建与性能优化完整指南。2. 装 WooCommerce:后台插件市场搜 WooCommerce,安装启用,向导会带你配:店铺地址、货币(人民币)、支付方式、配送方式、税率。向导里"支付方式"先跳过,单独配(见下节)。3[...]
2026-10-18 回复