文档章节

Thinkphp LNMP一键安装包1.1版配置pathinfo模式

沐风storm
 沐风storm
发布于 2014/10/09 14:20
字数 594
阅读 122
收藏 0

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

 

作为新手的我们配置服务器一个都会选用LNMP一键安装包。

在安装lnmp一键安装的时候,一般都没有开启访问pathinfo模式

这种模式在比较多的框架中用到,比如的ThinkPHP,今天小风摸索了大半天,总算是找到了方法

这个是lnmp.org(我装的就是这个,所以我以这个为例子)

开出来的虚拟机的配置中的一段(vhost/***.conf),找到对应的网站的程序

修改nginx配置文件也是这样修改

CSDN找到资料:

 location ~ .*\.(php|php5)?$
{
  try_files $uri =404;
  fastcgi_pass  unix:/tmp/php-cgi.sock;
  fastcgi_index index.php;
  include fastcgi.conf;
}

 

大家明显看到,location中的正则中,写了一个$,悲剧了,表示就此结束(?表示前面的php只匹配一次,这个只是随便提提)
最终,应该如此处理(location哪里也修改了,因为我没有用到php5处理):

location ~ \.php
{
  try_files $uri =404;
  fastcgi_pass  unix:/tmp/php-cgi.sock;
  fastcgi_index index.php;
  include fastcgi.conf;
  set $path_info "";
  set $real_script_name $fastcgi_script_name;
  if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
   set $real_script_name $1;
   set $path_info $2;
  }
  fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
  fastcgi_param SCRIPT_NAME $real_script_name;
  fastcgi_param PATH_INFO $path_info;
}

 

参考的网络上搜索到的文档,带注释完整 版告诉大家:(复制到配置文件里面修改下,域名 和网站目录 lnmp 1.1里面就可以用了)

 server
 {
  listen 80;
 #注意修改域名为你的网站域名;
  server_name yourname.com;
  index index.html index.htm index.php ;
#注意修改 网站存放目录 为你的网站对应目录
  root  /home/wwwroot/webdir;
        

location ~ \.php

{

  try_files $uri =404;

  fastcgi_pass  unix:/tmp/php-cgi.sock;

  fastcgi_index index.php;

  include fastcgi.conf;

  #初始化一个变量

                 set $path_info "";

                #初始化一个变量,并且获取到一个原始赋值

                set $real_script_name $fastcgi_script_name;

                if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {

               #检测如果.php后面还存在/开始参数,将参数处理

                set $real_script_name $1;#将第一个正则子串匹配到的赋值

                set $path_info $2;#将第二个正则子串匹配到的赋值

                  }

                #修改SCRIPT_FILENAME值

                fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;

                #修改SCRIPT_NAME值

               fastcgi_param SCRIPT_NAME $real_script_name;

               #修改PATH_INFO值

               fastcgi_param PATH_INFO $path_info;

              #上述三个赋值都是replace into的模式,这些值都是写在fastcgi.conf中

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



location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$

   {

    expires      30d;

   }

location ~ .*\.(js|css)?$

   {

    expires      12h;

   }
   access_log off;

}

 

最后,还要注意php.ini中的cgi.fix_pathinfo=0要注释掉(即在前面加上分号;),然后重启php-fpm和nginx

© 著作权归作者所有

沐风storm
粉丝 0
博文 10
码字总数 4795
作品 0
武汉
程序员
私信 提问
lamp环境搭建 --lnmp环境搭建_无需整理

需求分析 只需要测试lamp环境运行 目标 快速安装lamp环境 phpstudy一键按装 phpStudy for Linux 支持Apache/Nginx/Tengine/Lighttpd, 支持php5.2/5.3/5.4/5.5切换 已经在centos-6.5,debian...

辣条拌鱼翅
2015/08/15
333
0
如何在nginx环境中启用php的pathinfo URL模式[修正]

(到别的地方看到这篇文章,也是我写的^_^) (2014年1月6日21:23 发现不加index.php访问报404错误,一番研究后location正则有误,现已修正) 我们在安装lnmp一键安装的时候,一般都没有开启...

小小程序员
2014/01/05
3.1K
6
适合PHP新手入门上手的开发框架-thinkphp

ThinkPHP是一个开源的PHP框架,是为了简化企业级应用开发和敏捷WEB应用开发而诞生的。最早诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,并且遵循Apache2开源协议发布。早期的思想...

big_cat
2013/06/15
2K
0
ThinkPHP5配置Nginx实现兼容pathinfo模式访问

ThinkPHP项目,当使用Apache服务器时,Apache服务器本身支持pathinfo模式,ThinkPHP的4种访问模式都没问题;当使用Nginx时,碰到问题,必须使用兼容模式访问。 查找很多文档,归纳原因及解决...

makingdifference
2018/05/11
1K
0
thinkphp3.2版本url访问:总是走默认文件默认方法

这两天帮朋友改动thinkphp项目 刚开始配置项目,发现thinkphp总是走默认的模块默认的文件默认的方法,不管url怎么修改都不行,都是访问默认的,一开始我以为是代码写错了,跟了无数个断点后发...

小马_wolf
2017/05/27
112
0

没有更多内容

加载失败,请刷新页面

加载更多

thinkphp6 视图变量输出

thinkphp6 视图变量输出 视图默认把变量输出为字符串类型,有些时候需要保证原来的类型,比如html字符串 raw参数,禁止转换 {$content.content|raw} 支持多个参数,比如解码php内置的htmlspe...

DrChenXX
6分钟前
0
0
【搞定Jvm面试】 Java 内存区域揭秘附常见面试题解析

本文已经收录自笔者开源的 JavaGuide: https://github.com/Snailclimb (【Java学习+面试指南】 一份涵盖大部分Java程序员所需要掌握的核心知识)如果觉得不错的还,不妨去点个Star,鼓励一下!...

SnailClimb
16分钟前
1
0
jQuery如何根据数据属性值查找元素?

我有以下场景: var el = 'li'; 页面上有5个<li> ,每个都有一个data-slide=number属性(数字分别为1,2,3,4,5) 。 我现在需要找到当前活动的幻灯片编号,该编号映射到var current = $('ul...

javail
28分钟前
2
0
LaTeX自定义宏包、类文件的默认搜索路径设置方法

  对于自定义的LaTeX宏包与类,在调用时可以通过在命令\documentclass{}与\usepackage{}命令中指定完整路径或者相对路径,这样确实可以调用,但是编译时总是有烦人的警告信息,让人不爽。还...

陆巍_
30分钟前
2
0
计算机电子书 2018 BiliDrive 备份

下载方式 根据你的操作系统下载不同的 BiliDrive 二进制。 执行: bilidrive download <link> 链接 <!--more--> 文档 链接 Webpack 中文指南.epub (409.01 KB) bdrive://ce58b7b58292296a61......

ApacheCN_飞龙
50分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部