在LNMP(Linux, Nginx, MySQL, PHP)環境中實現多站點部署,可以通過配置Nginx來實現。以下是一個基本的步驟指南:
首先,確保你已經安裝了Linux操作系統,并且已經安裝了Nginx、MySQL和PHP。
sudo apt update
sudo apt install nginx mysql-server php-fpm php-mysql
為每個站點創建一個數據庫和用戶,并授予相應的權限。
CREATE DATABASE site1;
CREATE USER 'site1user'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON site1.* TO 'site1user'@'localhost';
FLUSH PRIVILEGES;
CREATE DATABASE site2;
CREATE USER 'site2user'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON site2.* TO 'site2user'@'localhost';
FLUSH PRIVILEGES;
為每個站點創建一個Nginx配置文件。
/etc/nginx/sites-available/site1)server {
listen 80;
server_name example.com; # 替換為你的域名
root /var/www/site1; # 替換為你的站點根目錄
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # 根據你的PHP版本調整
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
/etc/nginx/sites-available/site2)server {
listen 80;
server_name example2.com; # 替換為你的域名
root /var/www/site2; # 替換為你的站點根目錄
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # 根據你的PHP版本調整
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
創建符號鏈接以啟用這些站點配置。
sudo ln -s /etc/nginx/sites-available/site1 /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/site2 /etc/nginx/sites-enabled/
測試Nginx配置是否正確。
sudo nginx -t
如果配置正確,重啟Nginx以應用更改。
sudo systemctl restart nginx
確保你的域名解析到你的服務器IP地址。
為每個站點創建相應的根目錄,并設置適當的權限。
sudo mkdir -p /var/www/site1
sudo mkdir -p /var/www/site2
sudo chown -R www-data:www-data /var/www/site1
sudo chown -R www-data:www-data /var/www/site2
將你的網站文件上傳到相應的根目錄。
sudo cp -r /path/to/site1/* /var/www/site1/
sudo cp -r /path/to/site2/* /var/www/site2/
在瀏覽器中訪問你的域名,確保站點正常運行。
通過以上步驟,你可以在LNMP環境中成功部署多個站點。每個站點都有自己的配置文件、數據庫和文件目錄,互不干擾。