> 백엔드 개발 > PHP 튜토리얼 > 使用CodeIgniter开发所遇到的问题

使用CodeIgniter开发所遇到的问题

WBOY
풀어 주다: 2016-06-23 13:17:50
원래의
960명이 탐색했습니다.

CodeIgniter与nginx搭配

CodeIgniter与nginx配合时,经常会遇到这两个错误提示:

File not found No input file specified

这个错误跟path_info有关,需要在nginx中对应的站点配置中做简单配置。下面我把我的一个站点配置贴出来供参考:

server {    listen      80;    server_name services.xx.com;    server_name_in_redirect  off;    root /data/web/xx/services;    index index.php index.htm index.html;    error_log  /data/log/xx/web_common/error.log ;    access_log /data/log/xx/web_common/access.log main;    location / {         index  index.php index.html;    }    if (!-e $request_filename) {        rewrite ^/(.*)$ /index.php/$1 last;        break;    }    location ~ .*\.(svn|git|cvs) {         deny all;    }    location ~* \.(htm|html|xml|shtml)$ {         expires 600;     }    location  ~* \.(js|css|htc|gif|ico|png|swf|jpg|jpeg|bmp)$ {          expires 365d;     }    location ~* \.(bak|tar|gz|zip|tgz|sql)$ {          return 403;     }    location ~ .*.php($|/) {         fastcgi_split_path_info ^(.+\.php)(.*)$;         fastcgi_param PATH_INFO $fastcgi_path_info;         include php_fastcgi_params;         fastcgi_pass  unix:/tmp/php-fpm.sock;         fastcgi_index index.php;   }   }
로그인 후 복사

特别注意最后一个配置中的 fastcgi_split_path_info和 fastcgi_param PATH_INFO以及 location ~ .*.php($|/)。仔细对比自己的配置和我的配置吧。

对于有子站点的情况,比如我的CI目录结构是这样的:

---- application    |---- api    |---- wechat---- system---- logs……
로그인 후 복사

application目录下放各个子站点,并通过同一个二级域名访问,假设是 apps.xx.com,那么各个子站点的访问链接为:

http://apps.xx.com/apihttp://apps.xx.com/wechat
로그인 후 복사

那么,apps这个二级域名对应的配置为:

server {    listen      80;    server_name apps.xx.com;    server_name_in_redirect  off;    root /data/web/xx/application;    index index.php index.htm index.html;    error_log  /data/log/xx/web_common/error.log ;    access_log /data/log/xx/web_common/access.log main;    location / {        index index.php index.html;    }    location /api {       index  index.php index.html;       if ( !-e $request_filename ) {           rewrite ^/api/(.+)$ /api/index.php/$1 last;           break;       }    }    location /wechat {       index  index.php index.html;       if ( !-e $request_filename ) {           rewrite ^/wechat/(.+)$ /wechat/index.php/$1 last;           break;       }    }    location ~ .*\.(svn|git|cvs) {         deny all;    }    location ~* \.(htm|html|xml|shtml)$ {        expires 600;     }    location  ~* \.(js|css|htc|gif|ico|png|swf|jpg|jpeg|bmp)$ {          expires 365d;     }    location ~* \.(bak|tar|gz|zip|tgz|sql)$ {         return 403;     }     location ~ .*.php($|/) {        fastcgi_split_path_info ^(.+\.php)(.*)$;        fastcgi_param PATH_INFO $fastcgi_path_info;        include php_fastcgi_params;        fastcgi_pass  unix:/tmp/php-fpm.sock;        fastcgi_index index.php;   }   }
로그인 후 복사

注意各个子站点的配置。

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿