加油
努力

如何在同一台服务器上搭建两个WordPress网站?

在同一台服务器上搭建两个 WordPress 网站是完全可行的,常见于共享主机、VPS 或云服务器环境。以下是通用且安全的操作步骤(以 Linux + Apache/Nginx + PHP + MySQL 为例):


✅ 前提条件

  • 一台已安装 Web 服务器(Apache/Nginx)、PHP、MySQL/MariaDB 的服务器
  • 拥有 root 或 sudo 权限
  • 两个独立的域名(或子域名),如 site1.comsite2.com(或 site1.example.com / site2.example.com

📁 方案一:多站点目录 + 独立数据库(推荐,简单安全)

步骤 1:准备目录结构

# 创建两个网站根目录
sudo mkdir -p /var/www/site1
sudo mkdir -p /var/www/site2

# 设置权限(假设用户为 www-data)
sudo chown -R www-data:www-data /var/www/site1
sudo chown -R www-data:www-data /var/www/site2
sudo chmod -R 755 /var/www/site1 /var/www/site2

步骤 2:下载并解压 WordPress

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

# 分别部署到两个目录
sudo cp -r wordpress/* /var/www/site1/
sudo cp -r wordpress/* /var/www/site2/

步骤 3:配置虚拟主机(以 Apache 为例)

创建 site1 配置文件 /etc/apache2/sites-available/site1.conf

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

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

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

创建 site2 配置文件 /etc/apache2/sites-available/site2.conf

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

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

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

启用站点并重启 Apache:

sudo a2ensite site1.conf site2.conf
sudo a2dissite 000-default.conf  # 可选:禁用默认站点
sudo systemctl restart apache2

🔔 Nginx 用户:需在 /etc/nginx/sites-available/ 中创建对应 server 块,逻辑类似(注意 root 指令和 location / { try_files $uri $uri/ /index.php?$args; })。


步骤 4:创建独立数据库与用户

登录 MySQL:

mysql -u root -p

执行以下 SQL(替换密码和域名):

-- 创建 site1 数据库和用户
CREATE DATABASE site1_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'site1_user'@'localhost' IDENTIFIED BY 'strong_password_1';
GRANT ALL PRIVILEGES ON site1_db.* TO 'site1_user'@'localhost';
FLUSH PRIVILEGES;

-- 创建 site2 数据库和用户
CREATE DATABASE site2_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'site2_user'@'localhost' IDENTIFIED BY 'strong_password_2';
GRANT ALL PRIVILEGES ON site2_db.* TO 'site2_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

步骤 5:运行 WordPress 安装向导

  1. 访问 http://site1.com → 按提示安装:

    • 数据库名:site1_db
    • 用户名:site1_user
    • 密码:strong_password_1
    • 主机:localhost
    • 表前缀:可自定义(如 wp_site1_
  2. 同样访问 http://site2.com 完成第二个站点安装(使用 site2_db 等凭据)。

✅ 完成后,两个网站完全独立,互不干扰。


⚠️ 注意事项

项目 建议
安全性 为每个站点使用不同 DB 用户;定期更新 WP、主题、插件;启用防火墙(如 UFW)
性能优化 可为每个站点配置独立缓存(如 Redis/Memcached 命名空间区分)
备份策略 分别备份两个站点的文件 + 数据库(可用 mysqldump 脚本自动化)
SSL 证书 每个域名单独申请 Let’s Encrypt 证书(certbot --nginx -d site1.com -d site2.com 支持多域名)

🔄 替代方案对比

方案 优点 缺点
独立目录+独立 DB(上述方法) 安全隔离、易维护、兼容性好 需手动管理多个配置
WordPress Multisite 统一管理后台、节省资源 配置复杂、单点故障风险高、主题/插件全局生效
Docker 容器化 环境隔离、快速部署、版本可控 学习曲线较陡,需 Docker 基础

💡 若你追求极致隔离与弹性扩展,可考虑用 Docker Compose 为每个站点启动独立容器(含 Nginx + PHP-FPM + MySQL),但初期成本略高。


需要我提供:

  • 完整的 Nginx 配置示例?
  • 自动部署脚本(Bash/Ansible)?
  • WordPress Multisite 搭建指南?
    欢迎告诉我你的具体环境(如:Ubuntu 22.04?宝塔面板?CloudPanel?)我可进一步定制方案。
云服务器