今天总算把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了。