我的伺服器環境是 CentOS 7,Nginx 版本是 1.12,簡單紀錄一下讓 Laravel 在 Nginx 運作的設定。
編輯 Nginx 的設定檔案,通常路徑是
/etc/nginx/conf.d/default.conf
# 如果要強制轉 https 加這段
if ($scheme != "https") {
rewrite ^ https://$http_host$request_uri? permanent;
}
# Laravel 的根目錄要設到 public
location / {
root /var/www/html/public;
try_files $uri public/$uri/ /public/index.php?$query_string;
}
# PHP 的相關設定
location @php {
try_files $uri =404;
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/lib/php5-fpm/web19.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors on;
}
這樣就可以正常運作囉,重整看看不是能看到 Laravel 的首頁
補充兩個常用的設定,防圖片盜連跟轉維護中畫面
# 防圖片盜連,xxxxx.com 記得換成你的網址
location ~* \.(png|jpg|jpeg)$ {
valid_referers *.xxxxxx.com;
if ($invalid_referer) {
return 403;
}
}
# 全站轉維護中,一樣記得 root 的網址要換掉喔
set $maintenance on;
if ($uri ~* \.(ico|css|js|gif|jpe?g|png|html)(\?[0-9]+)? ) {
set $maintenance off;
}
if ($maintenance = on) {
return 503;
}
error_page 503 @maintenance;
root /srv/example_com/current/public;
location @maintenance {
rewrite ^(.*)$ /maintenance.html break;
}
發佈留言