加油
努力

使用LNMP或LAMP环境如何部署多个WordPress网站?

在 LNMP(Linux + Nginx + MySQL/MariaDB + PHP)或 LAMP(Linux + Apache + MySQL/MariaDB + PHP)环境中部署多个 WordPress 网站,可以通过 虚拟主机(Virtual Hosts) 的方式实现。每个网站拥有独立的域名、目录和数据库,互不干扰。

下面分别介绍两种环境下的部署方法:


一、通用准备步骤

1. 安装基础环境

确保已安装:

  • LNMP:Nginx、MySQL/MariaDB、PHP-FPM
  • LAMP:Apache、MySQL/MariaDB、PHP

推荐使用宝塔面板、OneinStack 或手动配置。

2. 准备多个域名

假设你要部署两个网站:

  • site1.com
  • site2.com

将这些域名解析到你的服务器 IP 地址。

3. 创建独立的网站目录

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

4. 下载 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/

设置权限:

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

5. 创建独立数据库

登录 MySQL:

mysql -u root -p

创建数据库和用户:

CREATE DATABASE wp_site1 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE DATABASE wp_site2 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

CREATE USER 'user_site1'@'localhost' IDENTIFIED BY 'strong_password1';
CREATE USER 'user_site2'@'localhost' IDENTIFIED BY 'strong_password2';

GRANT ALL PRIVILEGES ON wp_site1.* TO 'user_site1'@'localhost';
GRANT ALL PRIVILEGES ON wp_site2.* TO 'user_site2'@'localhost';

FLUSH PRIVILEGES;
EXIT;

二、LNMP 环境部署(Nginx)

1. 创建 Nginx 虚拟主机配置文件

站点1:/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版本调整
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /.ht {
        deny all;
    }
}

站点2:/etc/nginx/sites-available/site2.com

server {
    listen 80;
    server_name site2.com www.site2.com;
    root /var/www/site2.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;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /.ht {
        deny all;
    }
}

2. 启用站点

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/

3. 测试并重启 Nginx

sudo nginx -t
sudo systemctl reload nginx

三、LAMP 环境部署(Apache)

1. 创建虚拟主机配置文件

站点1:/etc/apache2/sites-available/site1.com.conf

<VirtualHost *:80>
    ServerName site1.com
    ServerAlias www.site1.com
    DocumentRoot /var/www/site1.com

    <Directory /var/www/site1.com>
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/site1_error.log
    CustomLog ${APACHE_LOG_DIR}/site1_access.log combined
</VirtualHost>

站点2:/etc/apache2/sites-available/site2.com.conf

<VirtualHost *:80>
    ServerName site2.com
    ServerAlias www.site2.com
    DocumentRoot /var/www/site2.com

    <Directory /var/www/site2.com>
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/site2_error.log
    CustomLog ${APACHE_LOG_DIR}/site2_access.log combined
</VirtualHost>

2. 启用站点

sudo a2ensite site1.com.conf
sudo a2ensite site2.com.conf

3. 启用重写模块(WordPress 需要)

sudo a2enmod rewrite

4. 重启 Apache

sudo systemctl restart apache2

四、完成 WordPress 安装

访问以下地址进行图形化安装:

  • http://site1.com/wp-admin/install.php
  • http://site2.com/wp-admin/install.php

在安装过程中填写各自的数据库信息:

网站 数据库名 用户名 密码
site1.com wp_site1 user_site1 strong_password1
site2.com wp_site2 user_site2 strong_password2

五、安全建议

  1. 使用 HTTPS:为每个站点配置 SSL 证书(推荐 Let’s Encrypt + Certbot)。
  2. 定期备份:数据库和文件都要备份。
  3. 更新 WordPress:保持核心、主题、插件最新。
  4. 限制 wp-admin 访问(可选):通过 .htaccess 或 Nginx 配置 IP 限制。

六、管理技巧

  • 使用宝塔面板、cPanel 等可视化工具更方便管理多站点。
  • 可考虑使用 Docker 容器化部署,实现完全隔离。

✅ 总结:
无论是 LNMP 还是 LAMP,部署多个 WordPress 网站的核心是:

  • 每个网站独立目录
  • 每个网站独立数据库
  • 配置 Web 服务器虚拟主机指向对应目录
  • 正确设置权限和 PHP 支持

这样即可在同一台服务器上安全运行多个 WordPress 站点。

云服务器