lnmp 环境搭建后,pathinfo 模式支持的配制。

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.修改php配置文件php.ini,将其中cgi.fix_pathinfo = 0,值改为

重启php-fpm

2.修改ngnix配置文件cd /usr/local/nginx/conf/ngnix.conf

原代码

server
    {
        listen 80 default;
        #listen [::]:80 default ipv6only=on;
        server_name www.lnmp.org;
        index index.html index.htm index.php;
        root  /home/wwwroot/default/www;

#error_page   404   /404.html;

//将这段修改成下面的代码
        location ~ [^/]\.php(/|$)
            {
                # comment try_files $uri =404; to enable pathinfo
                try_files $uri =404;
                fastcgi_pass  unix:/tmp/php-cgi.sock;
                fastcgi_index index.php;
                include fastcgi.conf;
                #include pathinfo.conf;
            }

修改后的代码

//被修改的代码

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

location ~* ^.+\.php
                     {
                    fastcgi_pass unix:/tmp/php-cgi.sock;
                    include fastcgi.conf; //导入文件 都在nginx.conf 同目录下
                    include pathinfo.conf; //导入文件
                    }

2.导入文件中代码

fastcgi.conf 中代码如下

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;

fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;
fastcgi_param  HTTPS              $https if_not_empty;

fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;

fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS    200;

pathinfo.conf 中代码如下

set $script $uri;
set $path_info "/";
if ($uri ~ "^(.+\.php)(/.+)") {
set $script $1;
set $path_info $2;
}
fastcgi_param PATH_INFO $path_info;
fastcgi_param SCRIPT_FILENAME $document_root/$script;
fastcgi_param SCRIPT_NAME $script;

3.重启ngnix. /root/lnmp restart

ThinkPHP就可以在nginx中运行了。

时间: 2024-11-01 17:42:26

lnmp 环境搭建后,pathinfo 模式支持的配制。的相关文章

Nginx下配置ThinkPHP的URL Rewrite模式和pathinfo模式支持

前面有关于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

LNMP环境搭建 Ubuntu篇

LNMP    就是linux+nginx+mysql+php.  洒家之前一直用apache服务器,还是win7系统,使用的都是xampp,esayphp,wamp等集成环境,周末闲着无聊,抱着尽量提高b格的想法动手配置了一下环境.完成之后还有点小激动.把过程分享出来,希望能帮助一些和我差不多的小白.下面开始环境配置: 首先ctrl+alt+t打开终端 1.更新软件源:  sudo apt-get update2.安装nginx  sudo apt-get install nginx3.启动n

LNMP环境搭建——MySQL篇

The world's most popular open source database 1.Install MySQL root@kallen:~# apt-get install mysql-server-5.5 mysql-client-5.5 2.Add Users (1) 选择数据表 语句例如以下:use mysql; (2) 在mysql的user表中添加连接用户帐号: 这里不要直接使用INSERT语句加入user记录,使用INSERT可能出现错误: ERROR 1364 (HY0

LNMP环境搭建之编译安装指南(php-5.3.27.tar.gz)

测试环境:CentOS release 6.5 (Final) 软件安装:nginx   mysql-5.5.32-linux2.6-x86_64.tar.gz   php-5.3.27.tar.gz 1.mysql安装详见:https://www.cnblogs.com/su-root/p/10247514.html 2.nginx安装详见:https://www.cnblogs.com/su-root/p/10177045.html     https://www.cnblogs.com/s

LNMP环境搭建ZABBIX3.0

1.LNMP环境搭建,这里就不详细介绍了,但是有几点需要注意 1)mysql如果是二进制或者编译安装,php编译的时候需要一下编译参数 --with-mysqli=/application/mysql-5.5.32/bin/mysql_config //后面的路径是你的mysql_config的具体路径,如果不加此参数会导致安装zabbix的时候找不到mysql support 2)mysql建立zabbix数据库的时候要指定utf8建库,再导入zabbix的数据 3)php编译的时候要加下面的

lamp or lnmp 环境搭建之独立安装mysql数据库

lamp or lnmp 环境搭建,如果mysql 是独立安装的则需要授权: 单独一台服务器独立安装mysql 安装后,优化服务器. 授权 实例如下: 创建用户 CREATE USER demo IDENTIFIED BY "passwd123"; 授权使用mysql数据库下面的所有表 GRANT ALL PRIVILEGES ON mysql.* TO 'demo'@'%'IDENTIFIED BY 'passwd123'WITH GRANT OPTION; FLUSH PRIVIL

LNMP环境搭建(基于zabbix监控软件)

LNMP环境搭建(基于zabbix监控软件) 安装依赖包: yum -y install pcre  pcre-devel  openssl openssl-devel 安装nginx [[email protected] media]# tar zxvf nginx-1.6.0.tar.gz [[email protected] media]# cd nginx-1.6.0 [[email protected] nginx-1.6.0]# ./configure --prefix=/usr/l

LNMP环境搭建精华

LNMP环境搭建====================================================================Linux(RHEL6.4) + Nginx(FastCGI) + PHP(php-fpm) + MySQL 所需软件包nginx-1.4.4.tar.gzphp-5.5.7.tar.gzcmake-2.8.10.2.tar.gzmysql-5.5.33.tar.gzDiscuz_X3.1_SC_UTF8.zip 一.安装Nginx1. pcre

阿里云(ECS)Centos服务器LNMP环境搭建

阿里云( ECS ) Centos7 服务器 LNMP 环境搭建 前言 第一次接触阿里云是大四的时候,当时在校外公司做兼职,关于智能家居项目的,话说当时俺就只有一个月左右的 php 后台开发经验(还是因为无意中选修了一门电子商务的课程,要做课程设计逼迫出来的),因为公司没人接触过后台开发,所以我这个菜鸟就硬着头皮上了.刚开始入门我把精力放在公司业务功能实现上,所用的服务器环境是别人已经配置好的,就是把代码在本地写好,通过 ftp 上传到服务器目录,是用 postman 插件测试一下接口就行了,开