记录一个PHP-FPM的PATH_INFO模式配置
一直以来都过度依赖于宝塔面板,很少配置环境了。这次有客户要求必须要用docker来配置服务器环境,于是用docker装了一个ubuntu,在这个ubuntu中安装php和nginx环境。遇到的坑不少,感觉值得记录的,就是这个path_info模式配置了,各种尝试各种不对,最终还是把宝塔的path_info配置复制了过来,生效了,具体配置如下:
location / {
index index.php index.html index.htm;
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
}
location ~ [^/]\.php(/|$) {
try_files $uri =404;
# 这是宝塔的配置
set $real_script_name $fastcgi_script_name;
if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
set $real_script_name $1;
set $path_info $2;
}
fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info;
include fastcgi_params;
}