今天总算把PHP CI的nginx配置给搞好了,按照下面的配置来就可以了;
先安装nginx,然后修改/etc/nginx/nginx.conf,里面加上include /etc/nginx/conf.d/*.conf;,然后在/etc/nginx/conf.d/目录里面添加一个moke.conf;
按照下面的方式进行配置,然后需要注意的是原来路径中的index.php需要去掉,否则会报404错误;
codeigniter(CI)是一个轻量型的PHP优秀框架,但是它是在apache服务器下开发的,在nginx下需要特别的配置才可以使用。
codeigniter修改
对application/config/config.php
进行修改,大约在48行左右。
1
|
$config
[
'uri_protocol'
] =
"PATH_INFO"
;
|
修改nginx配置
对nginx的进行配置,nginx.conf
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
server {
listen 80;
listen [::]:80 ipv6only=on;
server_name www.example.com;
root
/data/www/www
.example.com;
index index.php index.html index.htm;
location / {
# 这里使用try_files进行url重写,不用rewrite了。
try_files $uri $uri/
/index
.php?$query_string;
}
location ~ \.php($|/) {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
|
要特别注意19行的include fastcgi_params;
,如果没有这一行,那么你的PHP程序会无法运行的。我被这个坑了很多次了。
访问url
在CI框架下,有一个默认的controller,叫welcome。原先在没有nginx的rewrite前,我们需要通过这样的方式访问http://www.example.com/index.php/welcome/index。现在我们可以http://www.example.com/welcome/index这样访问URL了。