加油
努力

多个WordPress网站共用一台服务器需要怎么配置?

多个 WordPress 网站共用一台服务器是常见且高效的部署方式。通过合理的配置,可以在同一台服务器上安全、稳定地运行多个独立的 WordPress 站点。以下是详细的配置步骤和建议:


一、选择合适的服务器环境

推荐使用 LAMP(Linux + Apache + MySQL + PHP)或 LEMP(Linux + Nginx + MySQL + PHP)架构。

常见组合:

  • 操作系统:Ubuntu 20.04/22.04 LTS 或 CentOS 7/8
  • Web 服务器:Nginx(性能更好)或 Apache(配置简单)
  • 数据库:MySQL 或 MariaDB
  • PHP:PHP 7.4 / 8.0 / 8.1(根据 WordPress 版本要求)

二、基础服务器准备

  1. 更新系统

    sudo apt update && sudo apt upgrade -y
  2. 安装 LEMP/LAMP 环境

    Ubuntu + Nginx + MySQL + PHP-FPM 为例:

    sudo apt install nginx mysql-server php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip -y
  3. 启动并启用服务

    sudo systemctl enable nginx mysql php-fpm
    sudo systemctl start nginx mysql php-fpm

三、为每个 WordPress 站点创建独立环境

1. 创建网站目录结构

/var/www/
├── site1.com/
│   └── public_html/
├── site2.com/
│   └── public_html/
└── site3.com/
    └── public_html/

示例创建命令:

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

设置权限:

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

2. 为每个站点创建独立数据库

进入 MySQL:

sudo mysql -u root -p

创建数据库和用户:

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;

-- 同理创建 site2、site3...

3. 下载并配置 WordPress

下载 WordPress 到对应目录:

cd /var/www/site1.com/public_html
sudo wget https://wordpress.org/latest.tar.gz
sudo tar -xzvf latest.tar.gz --strip-components=1

复制配置文件:

sudo cp wp-config-sample.php wp-config.php

编辑 wp-config.php,填入对应的数据库名、用户名、密码。


四、配置 Web 服务器(Nginx 示例)

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

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

server {
    listen 80;
    server_name site1.com www.site1.com;
    root /var/www/site1.com/public_html;
    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:/var/run/php/php8.1-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /.ht {
        deny all;
    }
}

启用站点:

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

同理配置 site2.comsite3.com

测试配置并重启 Nginx:

sudo nginx -t
sudo systemctl reload nginx

⚠️ 注意:确保每个 server_name 对应正确的域名,并在 DNS 中解析到服务器 IP。


五、安全与优化建议

1. 使用 HTTPS(推荐 Let’s Encrypt)

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d site1.com -d www.site1.com

Certbot 会自动配置 SSL 并定期续期。

2. 隔离 PHP 进程(可选高级配置)

为每个站点配置独立的 PHP-FPM pool,提升安全性和资源控制。

示例:/etc/php/8.1/fpm/pool.d/site1.conf

[site1]
user = site1
group = site1
listen = /run/php/php8.1-fpm-site1.sock
listen.owner = www-data
listen.group = www-data
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
chdir = /

php_admin_value[open_basedir] = /var/www/site1.com/:/tmp/

然后修改 Nginx 的 fastcgi_pass 指向该 socket。

3. 安全加固

  • 禁用不必要的 PHP 函数(如 exec, shell_exec
  • 设置防火墙(UFW)
    sudo ufw allow 'Nginx Full'
    sudo ufw enable
  • 定期更新系统和 WordPress 插件主题
  • 使用强密码和非默认登录路径(可通过插件实现)

4. 资源监控

  • 使用 htopnmon 监控 CPU/内存
  • 设置日志轮转避免磁盘占满

六、维护建议

  • 备份策略:定期备份数据库和网站文件(可用 wp-cli 或脚本)
  • WordPress 多站点(Multisite) vs 多个网站点
    • 如果站点内容相关、管理员相同,可考虑 Multisite;
    • 若站点独立、客户不同,建议使用多个独立 WordPress 实例更安全灵活。

总结

步骤 内容
1 搭建 LEMP/LAMP 环境
2 为每个站点创建独立目录和数据库
3 安装多个 WordPress 实例
4 配置 Nginx/Apache 虚拟主机
5 配置 SSL 和安全策略
6 (可选)隔离 PHP 进程

✅ 优点:节省成本、便于管理
⚠️ 注意:需合理分配资源,避免一个站点拖垮整个服务器


如有更多需求(如使用 Docker、负载均衡、缓存优化等),可进一步扩展架构。需要我提供自动化部署脚本或 Docker Compose 方案吗?

云服务器