使用 LNMP 腳本一鍵部署的開發環境,預設 Nginx 設定可能關閉 Pathinfo,導致 ThinkPHP、Laravel 等框架路由失效。本文說明如何快速開啟 Pathinfo 支援。
Pathinfo 需 Nginx 將 .php 後的路徑資訊傳遞給 PHP-FPM。參考:Laruence 博客。
/usr/local/nginx/conf/vhost/yourdomain.conf 或主 nginx.conf)location ~ [^/]\.php(/|$) 區塊try_files $uri =404;(避免與 pathinfo.conf 衝突)include pathinfo.conf;location ~ [^/]\.php(/|$) {
# comment try_files $uri =404; to enable pathinfo
# try_files $uri =404;
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf;
include pathinfo.conf;
}
nginx -s reload
建立 phpinfo.php 存取 https://yourdomain.com/phpinfo.php/path/info,若 $_SERVER['PATH_INFO'] 顯示 /path/info 即成功。
完成上述步驟,框架路由即可正常運作。