宝塔面板安装Nginx和PHP并配置pathinfo

简介

现在几乎所有的PHP框架都需要使用pathinfo来读取url信息。

安装宝塔面板

通过宝塔安装PHP7.4

PHP开启pathinfo

cgi.fix_pathinfo = 1

也可直接在面板中开启:

配置nginx

打开D:\BtSoft\nginx\conf\php\74.conf,在try_files $uri =404;前添加#注释掉,否则访问时会出现404
修改后的74.conf文件内容如下:

location ~ \.php(.*)$ {
    #try_files $uri =404;
    fastcgi_pass   127.0.0.1:20074;
    fastcgi_index  index.php;

    fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    fastcgi_param  PATH_INFO  $fastcgi_path_info;

    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
}

配置后已支持使用/index.php/foo/bar来访问了。

省略index.php

为了让URL更好看,可以省略URL路径中的index.php
添加伪静态规则:

location / {
    if (!-e $request_filename){
        rewrite  ^(.*)$  /index.php$1  last;   break;
    }
}

配置后已支持使用/foo/bar访问。

指定目录使用php5版本

有些时候我们希望在指定的目录中使用PHP5的版本来访问。先通过宝塔安装PHP5.6版本。打开D:\BtSoft\nginx\conf\php\74.conf,在文件顶部加入:

location ~ /hello(.*)$ {
    fastcgi_pass   127.0.0.1:20056;
    fastcgi_index  index.php;

    fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    fastcgi_param  PATH_INFO  $fastcgi_path_info;

    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
}

这样访问/hello/目录下的文件将使用php5.6版本

发表评论

邮箱地址不会被公开。 必填项已用*标注