VPS侦探论坛

 找回密码
 注册
查看: 11148|回复: 5

如何让LNMP支持Thinkphp 等框架的pathinfo

[复制链接]
发表于 2014-6-11 22:43:44 | 显示全部楼层 |阅读模式

如何让LNMP支持Thinkphp 等框架的pathinfo   最近在弄Thinkphp, nginx不支持pathinfo 在网上找了好多教材都不行。总是报502 的错。我也看了论坛关于502的帖子 度解决不。能不能让LNMP 直接配置好就支持。
美国VPS推荐: 遨游主机LinodeLOCVPS主机云搬瓦工80VPSVultr美国VPS主机中国VPS推荐: 阿里云腾讯云。LNMP付费服务(代装/问题排查)QQ 503228080
发表于 2014-6-12 08:24:08 | 显示全部楼层


更新日志已说http://lnmp.org/changelog.html
Linux下Nginx+MySQL+PHP自动安装工具:https://lnmp.org
发表于 2014-6-23 21:08:47 | 显示全部楼层

加上
  1. if (!-e $request_filename) {                       
  2.         rewrite  ^/(.*)$  /index.php/$1  last;
  3.         break;
  4. }
复制代码
能支持index.php隐藏,同时我想使 index.php/XXXX/XXXX 及 admin.
php/XXXX/XXXX 也能正常访问,如果处理?烦请军哥赐教,网上查了很多天了,还是无法解决。
美国VPS推荐: 遨游主机LinodeLOCVPS主机云搬瓦工80VPSVultr美国VPS主机中国VPS推荐: 阿里云腾讯云。LNMP付费服务(代装/问题排查)QQ 503228080
发表于 2014-6-24 08:08:16 | 显示全部楼层



pathinfo和rewrite无法同时启用
Linux下Nginx+MySQL+PHP自动安装工具:https://lnmp.org
发表于 2014-7-19 15:20:15 | 显示全部楼层

回复 1# 的帖子


回复楼主,我也是在用 军哥的 lnmp包,

关于 thinkphp 的 pathinfo 让nginx 可以支持,

你可以新建一个 vhost,我将我的 贴给你看,你看着位置 进行改动,一定能正常访问的!

分割线下面,均是新建的vhost,默认路径是 /home/wwwroot/ruan
==================================================
server
        {
                listen       7899;
                server_name 119.146.203.247;
                index index.html index.htm index.php;
                root  /home/wwwroot;

                location /ruan {
                        index index.php;

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

                }

                location ~ .+.php($|/) {
                        set $script $uri;
                        set $path_info "/";
                        if ($uri ~ "^(.+.php)(/.+)") {
                                set $script $1;
                                set $path_info $2;
                        }

                        fastcgi_pass  unix:/tmp/php-cgi.sock;
                        fastcgi_index index.php?IF_REWRITE=1;
                        include fcgi.conf;
                        fastcgi_param PATH_INFO $path_info;
                        fastcgi_param SCRIPT_FILENAME /home/wwwroot$fastcgi_script_name;
                        include fastcgi_params;
                }
        }
===================================================================
分割线 结束

然后 - 更改php.ini
#vim /usr/local/php/etc/php.ini

找到:cgi.fix_pathinfo
更改为:cgi.fix_pathinfo=1

最后,记得重启 nginx 和 php-fpm 模块


==============================================

对于thinkphp框架项目的访问格式有多种,其中pathinfo是默认的基本访问格式,
格式为:http://hostname:port/index.php/模块名/action名/参数1/参数1的值/

pathinfo其实就是一个参数,
可以通过$_SERVER['PATH_INFO']获得,
thinkphp框架通过解析它来找到对应的模块和方法。

apache服务器默认是支持pathinfo的,但是nginx服务器默认不支持这种格式


谢谢

军哥运维代购:http://shop63846532.taobao.com/

发表于 2014-7-23 16:08:34 | 显示全部楼层

看文档看文档!


lnmp 1.1 版本已经支持 pathinfo 了!!!
添加pathinfo支持,去掉include pathinfo的#,在try_files前加#重启nginx即可使用;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|VPS侦探 ( 鲁ICP备16040043号-1 )

GMT+8, 2024-9-25 23:24 , Processed in 0.028517 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表