在一台服务器上使用LNMP或LAMP环境安装多个WordPress站点,主要有两种方法:基于虚拟主机(Virtual Host) 和 基于目录(子目录安装)。以下是详细步骤:
方法一:基于虚拟主机(推荐)
每个WordPress站点使用独立的域名(或子域名)和独立的虚拟主机配置。
1. 准备工作
- 确保已安装LNMP或LAMP环境。
- 准备多个域名(如
site1.com、site2.com)或子域名(如blog.site1.com),并将它们解析到服务器IP。
2. 创建网站目录
# 为每个站点创建独立的目录
sudo mkdir -p /var/www/site1
sudo mkdir -p /var/www/site2
3. 配置虚拟主机
对于LAMP(Apache):
- 为每个站点创建虚拟主机配置文件:
sudo nano /etc/apache2/sites-available/site1.conf -
示例配置:
<VirtualHost *:80> ServerName site1.com ServerAlias www.site1.com DocumentRoot /var/www/site1 ErrorLog ${APACHE_LOG_DIR}/site1_error.log CustomLog ${APACHE_LOG_DIR}/site1_access.log combined <Directory /var/www/site1> AllowOverride All Require all granted </Directory> </VirtualHost> - 启用站点并重载Apache:
sudo a2ensite site1.conf sudo systemctl reload apache2
对于LNMP(Nginx):
- 为每个站点创建配置文件:
sudo nano /etc/nginx/sites-available/site1 -
示例配置:
server { listen 80; server_name site1.com www.site1.com; root /var/www/site1; 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; # 根据PHP版本调整 } } - 创建符号链接并重载Nginx:
sudo ln -s /etc/nginx/sites-available/site1 /etc/nginx/sites-enabled/ sudo systemctl reload nginx
4. 安装WordPress
- 下载并解压WordPress到每个站点目录:
cd /var/www/site1 sudo wget https://wordpress.org/latest.tar.gz sudo tar -xzvf latest.tar.gz --strip-components=1 sudo rm latest.tar.gz - 设置目录权限:
sudo chown -R www-data:www-data /var/www/site1 sudo chmod -R 755 /var/www/site1 - 为每个站点创建独立的MySQL数据库和用户:
CREATE DATABASE site1_db; CREATE USER 'site1_user'@'localhost' IDENTIFIED BY '强密码'; GRANT ALL PRIVILEGES ON site1_db.* TO 'site1_user'@'localhost'; FLUSH PRIVILEGES; - 通过浏览器访问
site1.com完成WordPress安装向导。
方法二:基于子目录安装
所有WordPress站点共享同一个域名,但通过子目录区分(如 example.com/site1、example.com/site2)。
步骤
- 在主站点目录下创建子目录:
sudo mkdir -p /var/www/example.com/public_html/site1 sudo mkdir -p /var/www/example.com/public_html/site2 - 将WordPress文件解压到对应子目录。
-
配置主站点的虚拟主机(以Nginx为例):
server { listen 80; server_name example.com; root /var/www/example.com/public_html; index index.php; location /site1 { try_files $uri $uri/ /site1/index.php?$args; } location /site2 { try_files $uri $uri/ /site2/index.php?$args; } location ~ .php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; } } - 为每个子目录创建独立的数据库,并通过
example.com/site1访问安装。
通用注意事项
- 资源隔离:虚拟主机方式更安全,推荐使用。
- PHP-FPM池:可以为每个站点分配独立的PHP-FPM池,避免资源冲突。
- SSL证书:若启用HTTPS,需为每个域名配置SSL证书(可使用Let’s Encrypt)。
- 性能优化:多个站点共享服务器资源,需根据流量调整PHP内存限制、数据库连接数等。
一键脚本工具
- LNMP.org脚本:支持自动添加虚拟主机和SSL。
- 宝塔面板:可视化操作,适合新手管理多站点。
通过以上步骤,你可以轻松在一台服务器上部署多个独立的WordPress站点。
CLOUD技术笔记