在Linux服务器上部署多个WordPress站点,通常需要配置Web服务器、数据库、PHP环境以及域名解析等。以下是详细的配置步骤和建议:
一、基础环境准备
1. 安装LAMP或LEMP环境
选择以下任一种组合(推荐使用Nginx + PHP-FPM,性能更好):
- LAMP: Linux + Apache + MySQL/MariaDB + PHP
- LEMP: Linux + Nginx + MySQL/MariaDB + PHP-FPM
# Ubuntu/Debian 示例(以LEMP为例)
sudo apt update
sudo apt install nginx mysql-server php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip
二、为每个WordPress创建独立的配置
2. 创建网站目录结构
为每个站点创建独立的根目录:
sudo mkdir -p /var/www/site1.com/html
sudo mkdir -p /var/www/site2.com/html
设置权限:
sudo chown -R www-data:www-data /var/www/site1.com/html
sudo chmod -R 755 /var/www/site1.com
3. 下载并解压WordPress
cd /tmp
wget https://wordpress.org/latest.tar.gz
tar -xzvf latest.tar.gz
# 复制到各站点目录
sudo cp -r wordpress/* /var/www/site1.com/html/
sudo cp -r wordpress/* /var/www/site2.com/html/
4. 配置数据库(为每个站点创建独立数据库)
登录MySQL:
sudo mysql -u root -p
为每个站点创建数据库和用户:
CREATE DATABASE wp_site1;
CREATE DATABASE wp_site2;
CREATE USER 'user_site1'@'localhost' IDENTIFIED BY 'strong_password';
CREATE USER 'user_site2'@'localhost' IDENTIFIED BY 'another_password';
GRANT ALL PRIVILEGES ON wp_site1.* TO 'user_site1'@'localhost';
GRANT ALL PRIVILEGES ON wp_site2.* TO 'user_site2'@'localhost';
FLUSH PRIVILEGES;
EXIT;
5. 配置Web服务器(以Nginx为例)
为每个站点创建独立的server块配置文件:
/etc/nginx/sites-available/site1.com
server {
listen 80;
server_name site1.com www.site1.com;
root /var/www/site1.com/html;
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版本调整
}
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
6. 配置WordPress
访问 http://site1.com/wp-admin/install.php 进行安装。
在安装过程中:
- 数据库名:
wp_site1 - 用户名:
user_site1 - 密码:对应密码
- 数据库主机:
localhost - 表前缀:可自定义如
wp1_(推荐不同站点使用不同前缀)
三、安全与优化建议
✅ 安全措施
- 使用HTTPS(Let's Encrypt免费SSL):
sudo apt install certbot python3-certbot-nginx sudo certbot --nginx -d site1.com -d www.site1.com - 禁用文件编辑器:在
wp-config.php中添加:define('DISALLOW_FILE_EDIT', true); - 设置强密码和定期更新插件主题。
- 限制XML-RPC(如有必要)。
✅ 性能优化
- 启用OPcache(在
php.ini中):opcache.enable=1 opcache.memory_consumption=128 - 使用缓存插件(如WP Super Cache、W3 Total Cache)。
- 配置Nginx缓存或使用Redis对象缓存。
四、维护建议
- 备份策略:定期备份数据库和网站文件(可用
mysqldump+rsync或工具如wp-cli)。 - 更新管理:保持WordPress核心、主题、插件及时更新。
- 日志监控:查看Nginx和PHP错误日志排查问题。
五、可选:使用Docker简化多站部署(进阶)
使用Docker Compose为每个站点运行独立容器,实现完全隔离。
示例 docker-compose.yml 片段:
version: '3.8'
services:
db-site1:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_DATABASE: wp_site1
MYSQL_USER: user1
MYSQL_PASSWORD: pass1
volumes:
- db1_data:/var/lib/mysql
wordpress-site1:
image: wordpress:latest
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db-site1:3306
WORDPRESS_DB_USER: user1
WORDPRESS_DB_PASSWORD: pass1
WORDPRESS_DB_NAME: wp_site1
volumes:
- wp1_data:/var/www/html
volumes:
db1_data:
wp1_data:
可复制多份用于不同端口或域名反向X_X。
总结
部署多个WordPress的关键是:
| 要素 | 推荐做法 |
|---|---|
| Web服务器 | Nginx虚拟主机或Apache虚拟主机 |
| 数据库 | 每个站点独立数据库+用户 |
| 文件目录 | 每个站点独立根目录 |
| 安全 | HTTPS、权限控制、定期更新 |
| 扩展性 | Docker或自动化脚本批量部署 |
通过合理规划,一台Linux服务器可以稳定运行数十个WordPress站点。
如需进一步自动化,可考虑使用 WordOps、RunCloud 或 Plesk 等管理面板。
CLOUD云计算