在Linux服务器上部署多个WordPress需要哪些配置?

在 Linux 服务器上部署多个 WordPress 站点(多站点或多租户)可以通过以下几种方式实现,每种方式有其适用场景和配置要求。以下是详细的配置步骤和建议:


🧩 部署方案选择

方案一:单个服务器 + 多个独立 WordPress 实例

  • 每个 WordPress 独立运行,拥有自己的目录、数据库、域名。
  • 推荐用于不同客户或项目。

方案二:WordPress 多站点网络(Multisite)

  • 单个 WordPress 安装支持多个子站(子域名或子目录)。
  • 共享用户、插件、主题等资源。

本文重点介绍 方案一:多个独立 WordPress 实例,因其更灵活、安全隔离性好。


✅ 基础环境准备

1. 服务器系统

  • 推荐:Ubuntu 20.04/22.04 LTS 或 CentOS 7/8/Stream

2. 安装 LAMP 或 LEMP 栈

LEMP(Nginx)性能更好,推荐生产环境使用。

安装 Nginx、PHP、MySQL/MariaDB(以 Ubuntu 为例)

sudo apt update
sudo apt install nginx mysql-server php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip

确保 PHP 版本 ≥ 7.4(推荐 8.1+)。


🛠️ 配置多个 WordPress 的步骤

步骤 1:创建网站目录结构

为每个站点创建独立目录:

sudo mkdir -p /var/www/site1.com
sudo mkdir -p /var/www/site2.com

设置权限:

sudo chown -R www-data:www-data /var/www/site1.com
sudo chmod -R 755 /var/www/site1.com

步骤 2:下载并解压 WordPress

cd /tmp
wget https://wordpress.org/latest.tar.gz
tar -xzf latest.tar.gz

复制到各个站点目录:

sudo cp -r /tmp/wordpress/* /var/www/site1.com/
sudo cp -r /tmp/wordpress/* /var/www/site2.com/

步骤 3:创建独立的 MySQL 数据库和用户

登录 MySQL:

sudo mysql -u root

为每个站点创建数据库和用户:

CREATE DATABASE wp_site1;
CREATE USER 'user_site1'@'localhost' IDENTIFIED BY 'strong_password';
GRANT ALL PRIVILEGES ON wp_site1.* TO 'user_site1'@'localhost';
FLUSH PRIVILEGES;

CREATE DATABASE wp_site2;
CREATE USER 'user_site2'@'localhost' IDENTIFIED BY 'another_strong_password';
GRANT ALL PRIVILEGES ON wp_site2.* TO 'user_site2'@'localhost';
FLUSH PRIVILEGES;

EXIT;

步骤 4:配置 wp-config.php 文件

进入每个站点目录,重命名配置文件:

cd /var/www/site1.com
cp wp-config-sample.php wp-config.php
nano wp-config.php

修改数据库信息:

define('DB_NAME', 'wp_site1');
define('DB_USER', 'user_site1');
define('DB_PASSWORD', 'strong_password');
define('DB_HOST', 'localhost');

对 site2 同样操作,使用各自的数据库信息。

可使用 https://api.wordpress.org/secret-key/1.1/salt/ 生成密钥。


步骤 5:配置 Nginx 虚拟主机(Server Blocks)

为每个站点创建独立的 Nginx 配置文件:

示例:/etc/nginx/sites-available/site1.com

server {
    listen 80;
    server_name site1.com www.site1.com;
    root /var/www/site1.com;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ .php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.1-fpm.sock; # 根据实际 PHP 版本调整
    }

    location ~ /.ht {
        deny all;
    }
}

同样创建 /etc/nginx/sites-available/site2.com,修改 server_nameroot

启用站点:

sudo ln -s /etc/nginx/sites-available/site1.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/site2.com /etc/nginx/sites-enabled/

测试配置并重启 Nginx:

sudo nginx -t
sudo systemctl reload nginx

步骤 6:绑定域名 & DNS 设置

确保你的域名 A 记录指向服务器 IP 地址:

  • site1.comyour_server_ip
  • site2.comyour_server_ip

步骤 7:安装 SSL(HTTPS,强烈推荐)

使用 Let’s Encrypt 为每个站点添加 HTTPS:

sudo apt install certbot python3-certbot-nginx

为每个站点申请证书:

sudo certbot --nginx -d site1.com -d www.site1.com
sudo certbot --nginx -d site2.com -d www.site2.com

Certbot 会自动更新 Nginx 配置并启用 HTTPS。


🔐 安全与维护建议

  1. 定期更新:WordPress、主题、插件保持最新。
  2. 备份策略
    • 使用 mysqldump 备份数据库
    • 备份 /var/www/ 下的文件
  3. 防火墙
    sudo ufw allow 'Nginx Full'
    sudo ufw enable
  4. 文件权限加固
    • wp-config.php 权限设为 600
    • 禁止访问敏感文件(如 .htaccess, .env
  5. 使用缓存插件:如 WP Super Cache 或 Redis 缓存提升性能。

🔄 自动化脚本建议(可选)

可以编写 Bash 脚本自动化创建新站点流程,包括:

  • 创建目录
  • 下载 WordPress
  • 创建数据库
  • 生成 Nginx 配置
  • 申请 SSL 证书

✅ 总结:所需配置清单

项目 配置说明
Web 服务器 Nginx 或 Apache
数据库 MySQL / MariaDB(每个站点独立 DB)
PHP PHP-FPM(版本 ≥ 7.4)
目录结构 每个站点独立根目录
Nginx 配置 每个站点一个 server block
域名解析 DNS 指向服务器 IP
SSL 证书 Let’s Encrypt(certbot)
安全 防火墙、权限控制、定期更新

如有需要,我也可以提供一键部署脚本模板或 Ansible 配置方案。欢迎继续提问!

未经允许不得转载:CLOUD云枢 » 在Linux服务器上部署多个WordPress需要哪些配置?