在同一个服务器上安装两个 WordPress 站点是完全可行的,具体方法取决于你使用的服务器环境(如 Apache、Nginx、宝塔面板等)。以下是常见的几种实现方式:
✅ 方法一:通过不同目录安装(推荐新手)
这是最简单的方式,两个 WordPress 安装在同一个域名下的不同目录中。
示例:
- 站点1:
https://example.com/blog1/ - 站点2:
https://example.com/blog2/
步骤:
-
创建两个独立目录
mkdir /var/www/html/blog1 mkdir /var/www/html/blog2 -
分别下载 WordPress 到两个目录
cd /var/www/html/blog1 wget https://wordpress.org/latest.tar.gz tar -xzf latest.tar.gz --strip-components=1 cd /var/www/html/blog2 wget https://wordpress.org/latest.tar.gz tar -xzf latest.tar.gz --strip-components=1 -
为每个站点创建独立的数据库
CREATE DATABASE wordpress_blog1; CREATE DATABASE wordpress_blog2; CREATE USER 'wpuser1'@'localhost' IDENTIFIED BY 'password1'; CREATE USER 'wpuser2'@'localhost' IDENTIFIED BY 'password2'; GRANT ALL PRIVILEGES ON wordpress_blog1.* TO 'wpuser1'@'localhost'; GRANT ALL PRIVILEGES ON wordpress_blog2.* TO 'wpuser2'@'localhost'; FLUSH PRIVILEGES; -
分别访问安装页面
- 打开浏览器访问:
https://example.com/blog1/wp-admin/install.phphttps://example.com/blog2/wp-admin/install.php
- 按提示完成安装,使用各自数据库信息。
- 打开浏览器访问:
✅ 方法二:通过不同子域名(虚拟主机)
使用不同的子域名运行两个独立的 WordPress 站点。
示例:
- 站点1:
blog1.example.com - 站点2:
blog2.example.com
步骤(以 Nginx 为例):
-
创建两个目录
mkdir -p /var/www/blog1 mkdir -p /var/www/blog2 -
分别上传 WordPress 文件
-
配置 Nginx 虚拟主机
创建两个配置文件(或在一个文件中写两个
server块):# blog1.example.com server { listen 80; server_name blog1.example.com; root /var/www/blog1; index index.php; 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; } } # blog2.example.com server { listen 80; server_name blog2.example.com; root /var/www/blog2; index index.php; 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; } } -
重启 Nginx
sudo nginx -t sudo systemctl reload nginx -
配置 DNS
- 将
blog1.example.com和blog2.example.com解析到服务器 IP。
- 将
-
分别访问子域名进行安装
✅ 方法三:使用宝塔面板(图形化操作,适合新手)
- 登录宝塔面板。
- 添加两个网站:
- 域名分别为
blog1.example.com和blog2.example.com,或使用目录部署。
- 域名分别为
- 为每个网站创建独立数据库。
- 在每个网站根目录中上传 WordPress 文件。
- 通过浏览器访问对应域名完成安装。
✅ 方法四:使用 Docker(高级用户)
使用 Docker 容器隔离两个 WordPress 实例:
# docker-compose.yml
version: '3.8'
services:
db1:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_DATABASE: wordpress1
MYSQL_USER: wp1
MYSQL_PASSWORD: wp1pass
volumes:
- db1_data:/var/lib/mysql
wordpress1:
image: wordpress:latest
depends_on:
- db1
environment:
WORDPRESS_DB_HOST: db1:3306
WORDPRESS_DB_USER: wp1
WORDPRESS_DB_PASSWORD: wp1pass
WORDPRESS_DB_NAME: wordpress1
ports:
- "8080:80"
volumes:
- wp1_data:/var/www/html
db2:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_DATABASE: wordpress2
MYSQL_USER: wp2
MYSQL_PASSWORD: wp2pass
volumes:
- db2_data:/var/lib/mysql
wordpress2:
image: wordpress:latest
depends_on:
- db2
environment:
WORDPRESS_DB_HOST: db2:3306
WORDPRESS_DB_USER: wp2
WORDPRESS_DB_PASSWORD: wp2pass
WORDPRESS_DB_NAME: wordpress2
ports:
- "8081:80"
volumes:
- wp2_data:/var/lib/mysql
volumes:
db1_data:
db2_data:
wp1_data:
wp2_data:
运行:docker-compose up -d
访问:http://localhost:8080 和 http://localhost:8081
⚠️ 注意事项
- 数据库独立:每个 WordPress 必须使用独立数据库或前缀不同的表,避免冲突。
- 文件权限:确保 web 服务器(如 www-data)有读写权限。
- PHP 配置:如使用多站点,注意
php.ini的内存限制、上传大小等。 - 安全:定期更新 WordPress、主题和插件。
✅ 总结
| 方法 | 适用场景 | 复杂度 |
|---|---|---|
| 不同目录 | 同域名下多个博客 | ⭐⭐ |
| 子域名 | 多个网站点 | ⭐⭐⭐ |
| 宝塔面板 | 新手友好 | ⭐⭐ |
| Docker | 高级用户,易于管理 | ⭐⭐⭐⭐ |
根据你的需求选择合适的方式即可。
如需具体某一种方式的详细配置(比如 Apache 或宝塔),可以告诉我你的环境,我可以提供完整步骤。
ECLOUD博客