LNMP 支持 ThinkPHP 的 pathinfo 模式】的更多相关文章

注意使用LNMP 1.4版 1.修改php.ini 启用pathinfo /usr/local/php/etc/php.ini cgi.fix_pathinfo = 0 值改为1 2.修改/usr/local/nginx/conf/vhost/你的网站.conf 配置文件 include enable-php.conf;  替换为 include enable-php-pathinfo.conf; 注意包含thinkphp.conf的路由配置文件 配置文件如下所示: server    {   …
#user root;#user nobody;worker_processes 1; #error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024;} http { include mime.types; default_type application/octet-s…
下面介绍如何使Nginx支持ThinkPHP的Pathinfo和URL Rewrite模式. 1.ThinkPHP给出了ThinkPHP的官方解决方案,如下: 打开Nginx的配置文件 /etc/nginx/nginx.cof 一般是在这个路径,根据你的安装路径可能有所变化.如果你配置了vhost,而且只需要你这一个vhost支持pathinfo的话,可以直接打开你的 vhost的配置文件.找到类似如下代码(不同版本的nginx可能稍有不同,但是相差不会很远): location ~ .php…
最近一个项目中使用了ThinkPHP做为开发框架,URL上我们使用了PATHINFO模式,但是Nginx默认是不支持PATHINFO的,需要进行手动配置才可以,于是我们按照了以下方法进行了Nginx的PATHINFO支持配置: 修改nginx.conf,找到server中的 location ~ .php${},修改为location ~ .php {},并在其中增加以下内容: set $path_info ""; set $real_script_name $fastcgi_scri…
Thinkphp中的pathinfo模式 http://serverName/appName/module/action/id/1/ pathinfo模式 在不考虑路由的情况下,第一个参数会被解析成模块名称(如果启用了分组的话,则依次往后递推),第二个参数会被解析成操作,后面的参数是显式传递的,而且必须成对出现,例如: http://serverName/appName/module/action/year/2008/month/09/day/21/ 通常的URL里面含有index.php,为了…
ThinkPHP 3.1.2官方手册 第16.2章节 <隐藏index.php>中提到在Ngnix中隐藏index.php实现SEO友好的方法,其中使用了如下的代码 location / { if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=$1 last; break; } } 这种方法性能非常差,因为会对图片文件也进行文件存在判断,增加了磁盘IO开销 ,在<Nginx HTTP Server>一书中提到了种优化方法…
nginx 下conf/nginx.conf 或者自己的vhosts更改以前的参数 location / { root   html; index  index.html index.htm index.php; try_files  $uri  /index.php$uri; if (!-e $request_filename) { rewrite ^/子目录名/(.*)$ /子目录名/index.php?s=$1 last; #去除index.php break; } } location …
[Nginx配置虚拟主机] 每一个 server { listen       80;         server_name  www.a.com; ..... } 就表示一台虚拟域名, 然后对应的,在 /etc/hosts 修改: vim  /etc/hosts ------------------------------------------------------------------------------- [/usr/local/server/nginx/conf/nginx.…
fastcgi_split_path_info ^(.+?\.php)(/.*)$; set $path_info $fastcgi_path_info; fastcgi_param PATH_INFO $path_info; 或者 fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param SCRIPT_FILENAME $document_root$fas…
前面有关于lnmp环境的搭建,在此就不在赘述.下面就简述thinkPHP如何在nginx下开启url_rewrite和pathinfo模式支持 主要有两个步骤: 一.更改php.ini将;cgi.fix_pathinfo=0  改为cgi.fix_pathinfo=1 二.更改nginx配置文件中php的location设置pathinfo模式: location ~ \.php { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index in…
ThinkPHP的四种URL模式:0(普通模式);1(PATHINFO模式);2(REWRITE模式);3(兼容模式) nginx需要PATHINFO模式,但需要更改nginx配置文件让其支持PATHINFO模式. 系统环境: 系统:CentOS-6.4-x86_64 web服务器:nginx1.2.7 PHP版本:PHP5.3.17 数据库版本:MySQL5.5.28 一.安装LNMP1.0一键安装包: http://lnmp.org/install.html 按照以上版本安装环境 1.修改p…
将一个thinkphp项目从apache环境移到nginx1.2上,怎奈,nginx这个版本默认不支持pathinfo模式 首先,编辑nginx的虚拟主机配置文件 location ~ .*.(php|php5)?$ { #原有代码 } if (!-e $request_filename) {   rewrite  ^(.*)$  /index.php?s=$1  last;   break;    } #去掉$是为了不匹配行末,即可以匹配.php/,以实现pathinfo #如果你不需要用到p…
LNMP一键安装包是一个用Linux Shell编写的可以为CentOS/RadHat/Fedora.Debian/Ubuntu/Raspbian/Deepin VPS或独立主机安装LNMP(Nginx/MySQL/PHP).LNMPA(Nginx/MySQL/PHP/Apache). LAMP(Apache/MySQL/PHP)生产环境的Shell程序.同时提供一些实用的辅助工具如:虚拟主机管理.FTP用户管理.Nginx. MySQL/MariaDB.PHP的升级.常用缓存组件Redis.X…
thinkphp运行在linux+nginx,如何开启pathinfo模式,我是完整测试过了,没问题的,在thinkphp配置文件 开启    'URL_MODEL'   =>  1,   1代表pathinfo模式 1,第一步 开启pathinfo php.ini 开启  cgi.fix_pathinfo=1 2,第二步 配置nginx server { listen 80; server_name www.96net.com.cn; root /var/www/www.96net.com.c…
nginx模式默认是不支持pathinfo模式的,类似index.php/index形式的url会被提示找不到页面.下面的通过正则找出实际文件路径和pathinfo部分的方法,让nginx支持pathinfo. 本文基于安装lnmp一键安装包,添加虚拟主机情况下进行修改 如你要添加一个网站www.linuxeye.com支持pathinfo,配置文件nginx.conf不用任何改变(个人习惯),参考lnmp一键安装包 cat vhost/www.linuxeye.com.conf server…
很久不使用apache了,渐渐对apache感到陌生,因为朋友有个ZendFramework框架从apache移到nginx下,需要pathinfo模式支持.网上海搜于是开始搜索nginx+pathinfo相关文章,一开以为很容易就会配置好.因为搜索后发现有大量文章介绍nginx开启pathinfo模式,感觉不是什么难事.但是经过几个小时下来,还是没有配置好.并且大量文章的内容都极其相似,基本都是转载的.开始有点急了!因为一天过去了没有配好.继续摸索没办法,继续搜索.为了验证方便,我用a.com…
用thinkphp做了一个网站,部署到ubuntu上的时候需要,服务器用的是nginx,本身不支持pathinfo模式,需要修改配置文件,使其能够用pathinfo. 我用的是虚拟主机的方式.之前配置了好久,总是出现各种各样的问题,最后实在不行,直接用rewrite模式,配置还比较简单.后来不知道改了什么,rewrite也不能用了,这回打算把 pathinfo 配出来, 所以查了各种资料,一点一点的改.终于改成了. 发现很多网上的东西,其实和自己用的经常会有一点差别,需要根据自己的东西进行修改才…
一.PATHINFO功能简述 搞PHP的都知道ThinkPHP是一个免费开源的轻量级PHP框架,虽说轻量但它的功能却很强大.这也是我接触学习的第一个框架.TP框架中的URL默认模式即是PathInfo模式.这个模式很强大,每当你访问一个网站必然带有一长串参数,但是太长又显得不太友好.对于访问一个以MVC模式搭建的网站,必然带有M.C.A三个参数即module.controller.action,这些参数需要还需要用&符号隔开,假若参数量很多,就显得特别的不友好啦.然而PathInfo模式功能就是…
ThinkPHP支持通过PATHINFO和URL rewrite的方式来提供友好的URL,只需要在配置文件中设置 'URL_MODEL' => 2 即可.在Apache下只需要开启mod_rewrite模块就可以正常访问了,但是Nginx中默认是不支持PATHINFO的,所以nginx默认情况下是不支持ThinkPHP的.不过我们可以通过修改nginx的配置文件来让其支持ThinkPHP. 虚拟主机配置文件:  nginx/conf/vhost/127.0.0.1_8090.conf serve…
距离上一次发布的<制作类似ThinkPHP框架中的PATHINFO模式功能>(文章地址:http://www.cnblogs.com/phpstudy2015-6/p/6242700.html)已经过去好多天了,今晚就将剩下的一些东西扫尾吧. 上一篇文章已经实现了PATHINFO模式的URL,即我们访问MVC模式搭建的站点时,只需要在域名后面加上(/module/controller/action)即可,很智能化.并且通过new Object时的自动触发函数实现类文件的自动载入,因此只要我们搭…
语文一直不太好,要我怎么解释这个pathinfo模式还真不知道怎么说,那就先来一段代码说下pathinfo模式吧 http://serverName/appName/module/action/id/1/ 这个就是pathinfo模式 在不考虑路由的情况下,第一个参数会被解析成模块名称(如果启用了分组的话,则依次往后递推),第二个参数会被解析成操作,后面的参数是显式传递的,而且必须成对出现,例如: http://serverName/appName/module/action/year/2008…
pathinfo,一种伪静态的用法, 1.让 Apache 支持 PathInfo 配置的 Apache 版本 : 2.2.13 在配置文件中加入 <Files *.php> AcceptPathInfo On </Files> 这样 Apache 就可以支持针对 php 文件的 PathInfo 了. 2.pathinfo 模式 需要 php.ini 开启下面这个参数 cgi.fix_pathinfo=1 path_info模式:http://www.xxx.com/index.…
来源:http://www.thinkphp.cn/topic/26657.html 第一步:配置SERVER块 server { listen 80; server_name www.domain.com domain.com; error_page 404 /404.html; error_page 500 502 503 504 /50x.html; # \.php 只处理动态请求,对于静态资源请求由下面的 location匹配和处理 location ~ \.php { root /da…
公司有一款即将上线的应用服务端是基于ThinkPHP写的,本地测试无异常,上传到外网服务器后无法连接.这可把我和我的小伙伴们吓死了,怎么回事儿,本地测试都是对的呀! 我和我的小伙伴们开始找原因,换了一台服务器,上传上去测试可行.这两台服务器的区别在于,一台是LAMP,一台是LNMP.而出问题的就是那天LNMP.度娘后知道,nginx默认情况下不支pathinfo模式,从而不能支持ThinkPHP. nginx不支持thinkphp的原因 ThinkPHP支持通过PATHINFO和URL rewr…
要想让nginx支持PATH_INFO,首先需要知道什么是pathinfo,为什么要用pathinfo? pathinfo不是nginx的功能,pathinfo是php的功能. php中有两个pathinfo,一个是环境变量$_SERVER['PATH_INFO']:另一个是pathinfo函数,pathinfo() 函数以数组的形式返回文件路径的信息;. nginx能做的只是对$_SERVER['PATH_INFO]值的设置. 下面我们举例说明比较直观.先说php中两种pathinfo的作用,…
ThinkPHP的URL模式有四种,默认是PATHINFO模式,其他三种分别为:普通模式.REWRITE和兼容模式. 一.PATHINFO模式 浏览器输入格式为: http://localhost/demo39/index.php/模块/控制器/操作 在Home的Controller建立 UserController.calss.php ,如下图所示: 在浏览器上输入 http://localhost/demo39/index.php/Home/User 得到的结果为: user index 这…
在Nginx上部署ThinkPHP,解决Pathinfo问题 事实上.要解决nginx不支持pathinfo的问题.有两个解决思路,一是不使用pathinfo模式,二是改动nginx的配置文件,使它支持pathinfo. 为了使问题简单化,我选择了第一种方式.由于就另外一种方式,我查了非常多资料,发现大家的方法不尽同样.有的还区别非常大,easy造成误导,所以我选择从简出发,选择普通模式.尽管有一定的风险.当把index.php相应的前台代码改动完成之后.发现前台基本正常.但是后台仍然出现重定向…
几乎所有的框架(ThinkPHP,Zend Framework,CI,Yii,laravel等)都会使用URL重写或者pathinfo模式,使URL看起来更美观,比如可以隐藏掉入口文件,并且有利于搜索引擎优化,其实让Nginx支持pathinfo或者重写也不难,首先在php.ini中设置cgi.fix_pathinfo=1 再就是添加配置文件(新版nginx) 内容如下: #pathinfo 支持开始 以上配置信息根据实际情况配置 fastcgi_split_path_info ^((?U).+…
一.什么是MVC                 //了解    M -Model 编写model类 对数据进行操作    V -View  编写html文件,页面呈现    C -Controller 编写类文件(UserAction.class.php)二.ThinkPHP的MVC特点         //了解三.ThinkPHP的MVC对应的目录   //了解    M 项目目录/应用目录/Lib/Model    V 项目目录/应用目录/Tpl    C 项目目录/应用目录/Lib/Ac…
nginx 通过 location 的规则匹配将 php 转发给 php-fpm 处理后获取结果然后返回给客户端,转发模式可以通过 unix sock 或 tcp socket 方式.百度了好多文章我是没遇到一个能完整的而且正确的把 nginx 和 php 结合的配置讲述的较为正确的,这里总结了下最基本的 nginx + php 的模式配置,以及隐藏 index.php 和 开启 pathinfo 模式的方法. 个人觉得是可以复制粘贴配置你的生产环境的,总结了很多好的博文的要点,比如隐藏 ind…