配置lnmp支持pathinfo


lnmp安装成功后,默认并不支持pathinfo特性。如果出现这种样式的连接地址/index.php/Home/Public/login.html,nginx会报404错误。经过一番摸索总结如下。

服务器 /usr/local/php/etc/php.ini 文件

cgi.fix_pathinfo=0

改成

cgi.fix_pathinfo=1

如果不修改cgi.fix_pathinfo,则$_SERVER['PHP_SELF']不能正确赋值,从而影响伪静态处理程序。

服务器 /usr/local/nginx/conf/enable-php.conf 文件 改成这样,然后重启lnmp 命令 lnmp restart

location ~ [^/]\.php(/|$)
{
    #try_files $uri =404;
    fastcgi_pass unix:/tmp/php-cgi.sock;
    fastcgi_index index.php;
    include fastcgi.conf;
    include pathinfo.conf;
}

一定要删除或注释try_files一行。另外在配置目录下lnmp贴心的创建了enable-php-pathinfo.conf文件直接使用之即可。

pathinfo.conf内容参考如下:

fastcgi_split_path_info ^(.+\.php)(.*)$;
set $path_info $fastcgi_path_info;
fastcgi_param PATH_INFO $path_info;
try_files $fastcgi_script_name =404;

Archives