分类 nginx 下的文章

一直以来都过度依赖于宝塔面板,很少配置环境了。这次有客户要求必须要用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;
}