設定 Nginx 用於 PHP 專案的基本設定
大约 1 分鐘
設定 Nginx 用於 php 專案的基本設定
可參考設定檔產生網站
https://www.digitalocean.com/community/tools/nginx?global.app.lang=zhTW
適用版本
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;
}