溫馨提示×

centos lnmp如何配置虛擬主機

小樊
42
2025-10-15 11:44:36
欄目: 云計算

CentOS LNMP配置虛擬主機步驟

1. 前提條件:安裝LNMP基礎環境

在配置虛擬主機前,需確保已安裝Nginx、MySQL/MariaDB、PHP及PHP-FPM。若未安裝,可通過以下命令快速部署(以CentOS 7/8為例):

# 安裝EPEL倉庫(可選,用于擴展軟件包)
sudo yum install epel-release -y

# 安裝Nginx
sudo yum install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx

# 安裝MariaDB(或MySQL)
sudo yum install mariadb-server mariadb -y
sudo systemctl start mariadb
sudo systemctl enable mariadb
sudo mysql_secure_installation  # 運行安全腳本,設置root密碼

# 安裝PHP及常用擴展
sudo yum install php php-fpm php-mysqlnd php-gd php-xml -y
sudo systemctl start php-fpm
sudo systemctl enable php-fpm

2. 創建虛擬主機配置文件

LNMP一鍵安裝包(若使用)會默認將虛擬主機配置存放在/usr/local/nginx/conf/vhost/目錄下;手動安裝則通常在/etc/nginx/conf.d/目錄下創建配置文件。
example.com為例,執行以下命令創建配置文件:

sudo vi /etc/nginx/conf.d/example.com.conf

寫入以下內容(按需修改域名、目錄):

server {
    listen 80;
    server_name example.com www.example.com;  # 替換為你的域名
    root /var/www/example.com/html;           # 網站根目錄(需提前創建)
    index index.php index.html index.htm;

    # 前端路由處理
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    # PHP處理
    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_pass unix:/run/php-fpm/www.sock;  # PHP-FPM監聽socket(默認路徑)
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

    # 禁止訪問.htaccess文件
    location ~ /\.ht {
        deny all;
    }
}

3. 創建網站目錄并設置權限

# 創建網站根目錄
sudo mkdir -p /var/www/example.com/html

# 設置目錄所有者(Nginx默認用戶為nginx,若使用其他用戶需調整)
sudo chown -R nginx:nginx /var/www/example.com

# 設置目錄權限
sudo chmod -R 755 /var/www/example.com

# 創建測試頁面
echo "<?php phpinfo(); ?>" | sudo tee /var/www/example.com/html/index.php

4. 測試Nginx配置并重載

# 測試配置文件語法
sudo nginx -t
# 若輸出“syntax is ok”則表示配置正確

# 重載Nginx使配置生效
sudo systemctl reload nginx

5. 配置DNS解析

將域名example.comwww.example.com的A記錄指向服務器IP(需在域名注冊商或DNS管理平臺操作)。
測試訪問:在瀏覽器輸入http://example.com,應顯示PHP信息頁面。

6. 可選:配置SSL證書(啟用HTTPS)

使用Let’s Encrypt免費證書,執行以下命令:

# 安裝Certbot工具
sudo yum install certbot python2-certbot-nginx -y

# 獲取并安裝證書
sudo certbot --nginx -d example.com -d www.example.com
# 按提示完成驗證,證書會自動配置到Nginx中

# 設置證書自動續期(Let's Encrypt有效期90天)
sudo systemctl enable certbot.timer

注意事項

  • 若使用LNMP一鍵安裝包,也可通過./vhost.sh腳本快速添加虛擬主機(按提示輸入域名、目錄等信息)。
  • 確保PHP-FPM的listen參數與Nginx配置中的fastcgi_pass一致(默認均為/run/php-fpm/www.sock)。
  • 防火墻需開放HTTP(80)和HTTPS(443)端口:
    sudo firewall-cmd --permanent --zone=public --add-service=http
    sudo firewall-cmd --permanent --zone=public --add-service=https
    sudo firewall-cmd --reload
    

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女