如何在一个服务器上建设多个wordpress?

在一台服务器上搭建多个 WordPress 网站是完全可行的,常见的方法包括使用虚拟主机(Virtual Host)或反向(如 Nginx)来为每个站点分配独立的域名或子域名。以下是基于 Linux 服务器(如 Ubuntu/CentOS),使用 LAMP(Linux + Apache + MySQL + PHP)或 LEMP(Nginx 替代 Apache) 架构的详细步骤。


🌐 方法一:使用 Apache + 虚拟主机(推荐初学者)

步骤 1:安装 LAMP 环境

# Ubuntu/Debian
sudo apt update
sudo apt install apache2 mysql-server php php-mysql php-curl php-gd php-mbstring php-xml php-zip

步骤 2:为每个 WordPress 创建独立目录

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

下载 WordPress 并解压到对应目录:

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

sudo cp -r wordpress/* /var/www/site1.com/
sudo cp -r 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

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

sudo mysql -u root -p
CREATE DATABASE wp_site1;
CREATE DATABASE wp_site2;
CREATE USER 'user1'@'localhost' IDENTIFIED BY 'strongpassword1';
CREATE USER 'user2'@'localhost' IDENTIFIED BY 'strongpassword2';
GRANT ALL PRIVILEGES ON wp_site1.* TO 'user1'@'localhost';
GRANT ALL PRIVILEGES ON wp_site2.* TO 'user2'@'localhost';
FLUSH PRIVILEGES;
EXIT;

步骤 4:配置 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>

同样创建 site2.com.conf,替换域名和路径。

启用站点:

sudo a2ensite site1.com.conf
sudo a2ensite site2.com.conf
sudo a2enmod rewrite
sudo systemctl reload apache2

步骤 5:配置域名解析

确保 site1.comsite2.com 的 DNS 指向你的服务器 IP。

本地测试时可修改本地电脑的 hosts 文件:

192.168.1.100 site1.com
192.168.1.100 site2.com

步骤 6:访问并安装 WordPress

打开浏览器访问:

  • http://site1.com → 安装第一个 WordPress
  • http://site2.com → 安装第二个 WordPress

在安装过程中,分别使用对应的数据库(wp_site1, wp_site2)和数据库用户。


🌐 方法二:使用 Nginx + 反向(高性能推荐)

步骤 1:安装 LEMP 环境

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

步骤 2:创建网站目录(同上)

sudo mkdir -p /var/www/site1.com
sudo mkdir -p /var/www/site2.com
# 复制 WordPress 文件并设置权限

步骤 3:创建 Nginx 配置文件

sudo nano /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:/var/run/php/php8.1-fpm.sock;
    }

    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

后续步骤同 Apache(创建数据库、安装 WordPress)。


✅ 建议与最佳实践

  1. 独立数据库:每个 WordPress 使用独立数据库,避免冲突。

  2. 独立配置文件wp-config.php 中配置不同的数据库信息。

  3. SSL 加密:使用 Let’s Encrypt 为每个站点添加 HTTPS:

    sudo apt install certbot python3-certbot-nginx  # 或 apache
    sudo certbot --nginx -d site1.com -d www.site1.com
  4. 备份策略:定期备份数据库和文件。

  5. 安全设置

    • 修改 WordPress 目录权限。
    • 使用强密码。
    • 安装安全插件(如 Wordfence)。

🔁 其他方式(高级)

  • Docker 容器化:使用 Docker 为每个 WordPress 创建独立容器,更加隔离和易于管理。
  • 子目录部署:如 yoursite.com/blog1, yoursite.com/blog2,使用 WordPress 多站点(Multisite),但功能受限较多。

✅ 总结:
你可以在一台服务器上轻松运行多个 WordPress 站点,只需:

  • 为每个站点分配独立域名或子域名
  • 设置独立的网站目录
  • 配置独立数据库
  • 使用 Apache 虚拟主机 或 Nginx server 块

这样既能节省成本,又能高效管理多个网站。

如需,我可以提供一键部署脚本或 Docker 配置模板。欢迎继续提问!

未经允许不得转载:ECLOUD博客 » 如何在一个服务器上建设多个wordpress?