基于thinkphp框架开发的代码,nginx需要的配置开发的人跟我说基于thinkphp框架开发的代码在apache下能用,在nginx下为什么用不了呢,总是提示404的错误,原来apache默认就支持thinkphp等所需的PATH_INFO,而nginx不可以,那么接下来,我们就配置一下nginx,让他支持PATH_INFO,我是这么做的:
1,更改php.ini 首先php.ini的配置(/usr/local/php/etc/php.ini)中把 ;cgi.fix_pathinfo=0 改为 cgi.fix_pathinfo=1
2,vim /usr/local/nginx/conf/vhosts/111.conf
server
2 {
3 listen 80;
4 server_name www.111.com ;
5 index index.html index.htm index.php;
6 root /data/www;
7
8
#隐藏index.php 因为有的时候不希望看见入口文件 我这是隐藏了一级目录和index.php
location / {
root /data/www;
index index.html index.htm index.php;
if (!-e $request_filename) {
rewrite ^/anju/(.*)$ /anju/Web/index.php/$1 last;
}
#####################################################################################
9 location ~ \.php { #注意去掉这里的$符号
10 include fastcgi_params;
11 fastcgi_pass unix:/tmp/php-fcgi.sock;
12 fastcgi_index index.php;
13
14 #########################开启pathinfo模式##############################
15 fastcgi_split_path_info ^(.+\.php)(.*)$;
16 fastcgi_param PATH_INFO $fastcgi_path_info;
17 #######################################################################
18
19 fastcgi_param SCRIPT_FILENAME /data/www$fastcgi_script_name;
20
21 }
22
23 }
编辑回复