努力
加油

1核1G云服务器运行WordPress需要优化哪些设置?

1核1G 跑 WordPress,说实话,这在几年前是“地狱难度”,但在现在的 PHP 7.4/8.0+ 和 MySQL 5.7/8.0 环境下,只要优化到位,完全能跑起来,甚至并发不高时体验还不错。

核心逻辑就一条:把内存吃紧的问题,通过“缓存”和“精简”来解决。 1G 内存对于操作系统 + Web 服务 + 数据库来说,非常捉襟见肘,一旦稍微有点流量或者后台操作,OOM(Out of Memory)报错立马就来。

以下是我实测过、在阿里云/腾讯云等主流厂商上验证过的具体优化方案,按优先级排序:

1. 基础环境选型(决定生死的关键)

  • PHP 版本:必须用 PHP 7.4 或 8.0+。别碰 5.6 或 7.2,性能差距巨大。PHP 8.0 的 JIT 虽然对 WP 提升有限,但整体响应速度更快,内存占用更可控。
  • Web 服务器:推荐 Nginx + PHP-FPM。Apache 太吃内存,1G 机器上跑 Apache 很容易崩。Nginx 处理静态资源能力强,配合 FPM 可以控制进程数。
  • 数据库:首选 MySQL 5.7 或 MariaDB 10.3+。MySQL 8.0 默认配置较激进,1G 内存下容易爆,如果非要用 8.0,必须大幅调整 innodb_buffer_pool_size。

2. Nginx 配置优化

不要只用默认配置。重点调整 worker_processes 和 keepalive。

worker_processes auto; # 设为 1 即可,1核 CPU
events {
    worker_connections 1024;
}
http {
    keepalive_timeout 65;
    # 开启 gzip 压缩,节省带宽,减少传输时间
    gzip on;
    gzip_min_length 1k;
    gzip_buffers 4 16k;
    gzip_comp_level 2;
    gzip_types text/plain application/javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
}

3. PHP-FPM 调优(重中之重)

这是 1G 内存最容易出问题的地方。默认配置通常会启动多个子进程,直接撑爆内存。

在 /etc/php-fpm.d/www.conf(路径视系统而定)中修改:

  • pm = dynamic:动态管理进程。
  • pm.max_children = 10:这里要极其保守。1G 内存,每个 PHP 进程大概占 30-50MB,留足给 OS 和 MySQL 的空间,最多开 10-15 个。
  • pm.start_servers = 2:启动时只开 2 个。
  • pm.min_spare_servers = 1:最小空闲 1 个。
  • pm.max_spare_servers = 5:最大空闲 5 个。
  • pm.process_idle_timeout = 10s:空闲 10 秒就杀掉,回收内存。

这样设置后,平时只有几个进程在跑,有请求时才临时拉起,用完即走,极大降低内存峰值。

4. MySQL/MariaDB 极致精简

1G 内存跑 MySQL,默认配置基本必死。你需要手动限制 InnoDB 缓冲池大小。

编辑 /etc/my.cnf 或 /etc/mysql/my.cnf:

[mysqld]
# 关键:限制 InnoDB 缓冲池,不要让它吃掉所有内存
innodb_buffer_pool_size = 128M 
# 或者更小,100M 也可以,取决于你的数据库大小

# 关闭不必要的日志
general_log = 0
slow_query_log = 0 # 生产环境建议开启,但初期调试可关

# 连接数限制
max_connections = 50 # 默认可能 151,太高了没用,还占内存

# 其他优化
table_open_cache = 20
thread_cache_size = 8
query_cache_type = 0 # MySQL 8.0 已移除,5.7 及以下建议关闭或设小,因为锁竞争严重
query_cache_size = 0

重启 MySQL 服务生效。

5. WordPress 内部瘦身

代码层面的优化,能省一点是一点。

  • 对象缓存(Object Cache):

    • 强烈推荐安装 Redis 或 Memcached。1G 机器上,Redis 内存占用极低(几 MB),但能将数据库查询压力从 MySQL 转移出去,显著降低 PHP 执行时间和 MySQL 负载。
    • 插件推荐:Redis Object Cache。
    • 如果没有 Redis,至少用文件缓存(File Cache),但不如内存缓存效果好。
  • 禁用 REST API 心跳(Heartbeat):

    • WordPress 后台每分钟会向服务器发送一次 AJAX 请求,用于检测锁定等。这对 1G 机器是灾难。
    • 在 functions.php 添加以下代码限制其频率:
      // 限制后台 Heartbeat
      add_action( 'init', 'stop_heartbeat', 1 );
      function stop_heartbeat() {
      wp_deregister_script('heartbeat');
      wp_register_script('heartbeat', '', array(), '1.1' );
      wp_enqueue_script( 'heartbeat' );
      }

      或者使用插件如 “Disable Heartbeat Extension”。

  • 图片优化:

    • 启用 WebP 格式,使用插件如 ShortPixel 或 Imagify 自动转换。
    • 延迟加载(Lazy Load):WP 5.5+ 已内置,确保开启。
  • 主题与插件:

    • 少即是多。插件总数控制在 10 个以内。
    • 避免使用臃肿的多功能主题(如 Avada, Enfold)。选择轻量级主题,如 Astra、GeneratePress、Flavor 或 Kadence。
    • 删除不用的插件和主题,它们虽不运行,但会增加扫描开销。
  • 数据库清理:

    • 定期清理垃圾评论、修订版本(Revisions)、过期 transient 数据。
    • 插件推荐:WP-Optimize 或 Advanced Database Cleaner。
    • 在 wp-config.php 中添加:
      define('WP_POST_REVISIONS', 3); // 最多保留 3 个修订版
      define('AUTOSAVE_INTERVAL', 120); // 自动保存间隔改为 120 秒

6. 前端静态化与 CDN

  • CDN 提速:务必接入 CDN(阿里云 CDN、腾讯云 CDN 或 Cloudflare 免费版)。将 CSS、JS、图片等静态资源全部推到 CDN。这样你的 1G 服务器只需要处理 HTML 生成和 API 请求,负载下降 70% 以上。
  • 页面缓存:
    • 使用全页面缓存插件,如 WP Super Cache 或 W3 Total Cache。
    • 设置为“专家模式”或“简单模式”,生成静态 HTML 文件。
    • 这样大多数访问者看到的是静态 HTML,无需经过 PHP 解析和数据库查询,服务器压力骤减。

7. 监控与告警

  • 安装一个轻量级监控工具,如 Prometheus Node Exporter + Grafana,或者直接用云厂商自带的云监控。
  • 关注指标:Memory Usage、Swap Usage、Load Average。
  • 如果 Swap 使用率持续高于 20%,说明物理内存不足,需要进一步精简或考虑升级。

总结 Checklist

  1. [ ] PHP 7.4+ / Nginx / MySQL 5.7
  2. [ ] Nginx 开启 Gzip
  3. [ ] PHP-FPM max_children <= 10
  4. [ ] MySQL innodb_buffer_pool_size = 128M
  5. [ ] 安装 Redis 对象缓存
  6. [ ] 启用 WP Super Cache 全页缓存
  7. [ ] 接入 CDN 提速静态资源
  8. [ ] 禁用后台 Heartbeat
  9. [ ] 精简插件和主题

最后提醒:
1核1G 适合个人博客、展示型网站、低流量企业官网。如果你的日 PV 超过 5000,或者有大量用户同时在线互动,建议直接升级到 2核2G 或以上。云服务器成本现在很低,1核1G 属于“极限压榨”场景,维护成本高,稳定性风险也高。如果预算允许,2核2G 是性价比更高的起点。