奋斗
努力

一个服务器怎么部署两个WORDPRESS网站?

云计算

在一个服务器上部署两个 WordPress 网站是完全可行的,而且非常常见。以下是详细的步骤和方法,适用于常见的 Linux 服务器环境(如 Ubuntu/CentOS)配合 Apache 或 Nginx + MySQL/MariaDB + PHP(即 LAMP 或 LEMP 环境)。


✅ 前提条件

  • 一台 Linux 服务器(例如:Ubuntu 20.04/22.04)
  • 已安装 LAMP(Linux + Apache + MySQL + PHP)或 LEMP(Nginx 替代 Apache)
  • 域名(可选,也可以用不同端口或子目录访问)

方法一:使用虚拟主机(推荐)

通过 虚拟主机(Virtual Hosts),你可以让一个服务器托管多个独立的 WordPress 站点,每个站点有独立的域名、数据库和文件目录。

步骤 1:准备两个网站目录

# 创建第一个网站目录
sudo mkdir -p /var/www/site1.com
sudo chown -R $USER:$USER /var/www/site1.com
sudo chmod -R 755 /var/www/site1.com

# 创建第二个网站目录
sudo mkdir -p /var/www/site2.com
sudo chown -R $USER:$USER /var/www/site2.com
sudo chmod -R 755 /var/www/site2.com

$USER 是你的当前用户名,确保你对目录有读写权限。


步骤 2:下载 WordPress 到两个目录

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

复制到两个网站目录:

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

步骤 3:创建两个独立的数据库

登录 MySQL:

sudo mysql -u root -p

创建数据库和用户:

-- 第一个网站
CREATE DATABASE wp_site1;
CREATE USER 'user1'@'localhost' IDENTIFIED BY 'strong_password1';
GRANT ALL PRIVILEGES ON wp_site1.* TO 'user1'@'localhost';
FLUSH PRIVILEGES;

-- 第二个网站
CREATE DATABASE wp_site2;
CREATE USER 'user2'@'localhost' IDENTIFIED BY 'strong_password2';
GRANT ALL PRIVILEGES ON wp_site2.* TO 'user2'@'localhost';
FLUSH PRIVILEGES;

EXIT;

步骤 4:配置 Web 服务器(以 Apache 为例)

创建两个虚拟主机配置文件:

sudo nano /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>

同理创建第二个:

sudo nano /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>

启用站点并重启 Apache:

sudo a2ensite site1.com.conf
sudo a2ensite site2.com.conf
sudo a2enmod rewrite  # 启用伪静态
sudo systemctl restart apache2

如果你使用的是 Nginx,请参考下方“Nginx 配置”部分。


步骤 5:完成 WordPress 安装

在浏览器中分别访问:

  • http://site1.com
  • http://site2.com

WordPress 安装向导会自动启动。为每个站点填写对应的信息:

项目 站点1 站点2
数据库名 wp_site1 wp_site2
用户名 user1 user2
密码 strong_password1 strong_password2
主机 localhost localhost

其余设置按提示完成即可。


🔁 使用 Nginx 的配置示例(LEMP)

如果你使用 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;

    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;
    }
}

同样为 site2.com 创建类似文件,然后启用:

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/
sudo nginx -t
sudo systemctl reload nginx

🧩 其他方式(备选)

方式二:子目录部署

  • 将第二个 WordPress 放在 /var/www/html/site2
  • 配置路径路由(较复杂,SEO 不友好,不推荐用于网站点)

方式三:使用 Docker(高级)

  • 每个 WordPress 运行在独立容器中
  • 更隔离、更灵活,适合开发和自动化部署

✅ 总结

要点 说明
文件分离 每个网站独立目录
数据库分离 每个网站独立数据库
虚拟主机 Apache/Nginx 配置不同 ServerName
域名绑定 可用不同域名或子域名指向不同站点
安全性 推荐为每个站点使用不同的数据库用户

✅ 成功后,你就可以在一个服务器上运行两个完全独立的 WordPress 网站,互不干扰。

如果你需要我帮你生成完整的配置文件或脚本,欢迎继续提问!

未经允许不得转载:云服务器 » 一个服务器怎么部署两个WORDPRESS网站?