跳至主要內容

設定 Nginx 用於 PHP 專案的基本設定

Pamis Wang大约 1 分鐘伺服器NginxNginx 1.22PHPPHP 7.4

設定 Nginx 用於 php 專案的基本設定

可參考設定檔產生網站

https://www.digitalocean.com/community/tools/nginx?global.app.lang=zhTWopen in new window

適用版本

nginx version: nginx/1.22.1

基本設定

server {
    # 設定監聽的 port
    listen          80;
    # 定義伺服器名稱
    server_name     xxxxxx.xxx.com.tw;
    # 設定專案資料夾
    root            /home/username/web;
    # 指定初始頁面
    index           index.php;

    # 將服務器錯誤頁面重定向到靜態頁面 /50x.html
    error_page  404              /404.html;

    # 將服務器錯誤頁面重定向到靜態頁面 /50x.html
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # 將 PHP 腳本轉送給 FastCGI 服務器
    location ~ \.php$ {
        # 腳本文件請求路徑
        fastcgi_param   SCRIPT_FILENAME     $realpath_root$fastcgi_script_name;
        # 指定用來解譯 PHP 程式的端口
	    # With php-fpm (or other unix sockets):
        fastcgi_pass    unix:/var/run/php/php7.4-fpm.sock;
		# With php-cgi (or other tcp sockets):
		# fastcgi_pass 127.0.0.1:9000;
        # 載入預設的 fastcgi 設定
        include        fastcgi_params;
    }
}

基本設定 - SSL

server {
    # 設定監聽的 port
    listen                  443 ssl;
    # 定義伺服器名稱
    server_name             xxxxxx.xxx.com.tw;

    # SSL 設定
    ssl_protocols           TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers             AES128-SHA:AES256-SHA:RC4-SHA:DES-CBC3-SHA:RC4-MD5;
    ssl_certificate         /usr/share/ca-certificates/server.crt;
    ssl_certificate_key     /usr/share/ca-certificates/server.key;
    ssl_session_cache       shared:SSL:10m;
    ssl_session_timeout     10m;

    # 設定專案資料夾
    root                    /home/username/web;

    # 指定初始頁面
    index                   index.php;

    # 將服務器錯誤頁面重定向到靜態頁面 /50x.html
    error_page  404              /404.html;

    # 將服務器錯誤頁面重定向到靜態頁面 /50x.html
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # 將 PHP 腳本轉送給 FastCGI 服務器
    location ~ \.php$ {
        # 腳本文件請求路徑
        fastcgi_param   SCRIPT_FILENAME     $realpath_root$fastcgi_script_name;
        # 指定用來解譯 PHP 程式的端口
	    # With php-fpm (or other unix sockets):
        fastcgi_pass    unix:/var/run/php/php7.4-fpm.sock;
		# With php-cgi (or other tcp sockets):
		# fastcgi_pass 127.0.0.1:9000;
        # 載入預設的 fastcgi 設定
        include        fastcgi_params;
    }
}

# HTTP 轉址
server {
    # 設定監聽的 port
    listen          80;
    # 定義伺服器名稱
    server_name     xxxxxx.xxx.com.tw;
    # 轉址重定向的網址
    return          https://xxxxxx-demo.xxx.com.tw$request_uri;
}

參考資料

https://nginx.org/en/docs/http/ngx_http_ssl_module.htmlopen in new window

上次編輯於:
貢獻者: pamis,Pamis Wang