>백엔드 개발 >PHP 튜토리얼 >让nginx圆满支持Thinkphp的配置

让nginx圆满支持Thinkphp的配置

WBOY
WBOY원래의
2016-06-13 11:55:571028검색

让nginx完美支持Thinkphp的配置

习惯了用apache后,当第一次用nginx时,把原来的项目(thinkphp框架)部署在新服务器上的时候,惊呆了!

所有的URL模式下都不能正常运行,甚至连css,js文件都不能正常加载。

原因是ngibx不支持pathinfo

主要是需要配置nginx

location / {            root   D:/wnmp/www;            index  index.html index.htm;			#访问路径的文件不存在则重写URL转交给ThinkPHP处理			if ( !-e $request_filename ) {			   rewrite  ^/(.*)$  /index.php/$1  last;			   break;			}        }
location ~ \.php/?.*$ {<span style="white-space:pre">			</span>root        D:/wnmp/www;<span style="white-space:pre">			</span>fastcgi_pass   127.0.0.1:9001;<span style="white-space:pre">			</span>fastcgi_index  index.php;<span style="white-space:pre">			</span>#加载Nginx默认"服务器环境变量"配置<span style="white-space:pre">			</span>include        fastcgi_params;<span style="white-space:pre">			</span>include<span style="white-space:pre">		</span>   fastcgi.conf;<span style="white-space:pre">			</span>#设置PATH_INFO并改写SCRIPT_FILENAME,SCRIPT_NAME服务器环境变量<span style="white-space:pre">			</span>set $fastcgi_script_name2 $fastcgi_script_name;<span style="white-space:pre">			</span>if ( $fastcgi_script_name ~ "^(.+\.php)(/.+)$" ) {<span style="white-space:pre">				</span>set $fastcgi_script_name2 $1;<span style="white-space:pre">				</span>set $path_info $2;<span style="white-space:pre">			</span>}<span style="white-space:pre">			</span>fastcgi_param   PATH_INFO $path_info;<span style="white-space:pre">			</span>fastcgi_param   SCRIPT_FILENAME   $document_root$fastcgi_script_name2;<span style="white-space:pre">			</span>fastcgi_param   SCRIPT_NAME   $fastcgi_script_name2;<span style="white-space:pre">		</span>}


最后这部分是为了css和js 以及图片等资源

location ~* ^.+\.(jpg|jpeg|gif|png|bmp|css|js|swf)$ {			access_log off;			root D:/wnmp/www;			break;		}



성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.