vlambda博客
学习文章列表

网站服务器配置 nginx.conf 有误,导致服务器 **$_SERVER** 的 PATH_INFO 无法获取


问题:

配置 maccms 时,配置 nginx.conf 成功之后,网站智能访问首页,无法访问其他的页面 ;


问题分析:

环境使用的 php nginx mysql ;使用的是 tp5 的框架 ,问题发现配置号服务器之后发现无法访问其他页面,使用 debug 调试发现无法解析路由 ;


原因:tp5 解析路由使用了 $_SERVER 中 PATH_INFO,但是如图配置无法获取 path_Info , 导致路由解析失败 ;访问其他的路由,都跳转到首页 ,


之前的错误配置



解决办法:

调整后的服务器配置



location ~ [^/]\.php(/|$) { #fastcgi_pass remote_php_ip:9000; fastcgi_pass unix:/dev/shm/php-cgi.sock; fastcgi_index index.php; fastcgi_split_path_info ^(.+\.php)(.*)$; #增加这一句 fastcgi_param PATH_INFO $fastcgi_path_info; #增加这一句 include fastcgi.conf; }

配置成功之后:重新启动一下 nginx 服务器;

网站的路由访问的问题就可以解决了。

遇到这样的问题也是无意中搭建一个视频观看的的网站(http://tv.zsying.cn)遇到的问题,每个框架内核代码不一样,遇到的问题也不同,遇到问题视真实情况分析,望借鉴,感谢您的阅读!


文章有错误的地方请多多指点,互相学习共同进步; 

QQ:2420662993