|
本帖最后由 zhengmz 于 2013-12-24 17:49 编辑
使用http://lnmp.org/提供的“LNMP一键安装包”后,如果直接使用CodeIgiter,会出现500的错误。
之前在本站搜索到的一些nginx.conf配置,都有些不足:
比如:1. 出现phpmyadmin无法正常访问;
2. 多项目目录下的支持不好。
为此,我找了一通,最终在李开涌的《PHP MVC开发实战》中找到一种配置方法,还是很好用的,分享给大家:
第一步,查看php.ini是否已经开启cgi.fix_pathinfo支持,代码如下:
第二步,配置nginx.conf,直接将原配置中关于php部分的配置修改如下:
- location ~ .+\.php
- {
- try_files $uri =404;
- fastcgi_pass unix:/tmp/php-cgi.sock;
- fastcgi_index index.php;
- include fcgi.conf;
- set $script $uri;
- set $path_info "/";
- set $real_script_name $fastcgi_script_name;
- 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 $real_script_name;
- fastcgi_param SCRIPT_NAME $script;
- }
复制代码
(注:“location ~ .+\.php”只有一个反斜杠)
第三步,为支持index.php文件隐藏,在nginx中配置如下:
- location /phpmyadmin/ {
- index index.php;
- }
- location /projectA/ {
- index index.php;
- if (!-e $request_filename) {
- rewrite ^/mifi/(.*)$ /mifi/index.php/$1 last;
- break;
- }
- }
- location / {
- index index.php;
- if (!-e $request_filename) {
- rewrite ^/(.*)$ /index.php/$1 last;
- break;
- }
- }
复制代码
其中,配置“location /projectA/”就是为了实现多项目环境。
重启php-fpm和nginx就可以了。
欢迎大家批评指正。
|
|