良玉的博客 点点滴滴,积水成河_良玉的博客_页游、手游linux运维工程师之路

Nginx配置目录别名(Alias)支持PHP

需求:通过 example.com 访问 /var/data/www,但通过 example.com/pa 访问的却是 /var/data/phpmyadmin,即保护phpmyadmin不暴露在www目录下。

一、方法一:(不推荐)

简介:这是网上普遍采用的 Rewrite 方式。
缺陷:简单的php程序还能应付,复杂一点的程序就"No input file specified"

01.http://wangyan.org/blog/usr/plugins/FHilight/wrapping.png) 0px 1.1em no-repeat !important;">server {
02.listen 80;
03.server_name example.com;
04. 
05.root /var/data/www;
06.index index.html index.php;
07. 
08.location /pa {
09.alias /var/data/phpmyadmin;
10.index index.html index.php;
11.}
12. 
13.location ~ /pa/.+\.php$ {
14.rewrite /pa/(.+\.php) /$1 break;
15.fastcgi_pass  127.0.0.1:9000;
16.fastcgi_index  index.php;
17.fastcgi_param  SCRIPT_FILENAME  /var/data/phpmyadmin/$fastcgi_script_name;
18.include  fastcgi_params;
19.}
20. 
21.location ~ .+\.php.*$ {
22.fastcgi_pass  127.0.0.1:9000;
23.fastcgi_index  index.php;
24.fastcgi_param  SCRIPT_FILENAME  $document_root/$fastcgi_script_name;
25.fastcgi_param  SCRIPT_FILENAME  $request_filename;
26.include  fastcgi_params;
27.}
28.}

二、方法二:(推荐)

简介:完美实现,无副作用。
特点:使用了一个叫"$valid_fastcgi_script_name"的变量

01.server {
02.listen 80;
03.server_name example.com;
04. 
05.root /var/data/www;
06.index index.html index.php;
07. 
08.location /pa {
09.alias /var/data/phpmyadmin;
10.index index.html index.php;
11.}
12. 
13.location ~ /pa/.+\.php.*$ {
14.if ($fastcgi_script_name ~ /pa/(.+\.php.*)$) {
15.set $valid_fastcgi_script_name $1;
16.}
17.fastcgi_pass  127.0.0.1:9000;
18.fastcgi_index  index.php;
19.fastcgi_param  SCRIPT_FILENAME  /var/data/phpmyadmin/$valid_fastcgi_script_name;
20.include  fastcgi_params;
21.}
22. 
23.location ~ .+\.php.*$ {
24.fastcgi_pass  127.0.0.1:9000;
25.fastcgi_index  index.php;
26.fastcgi_param  SCRIPT_FILENAME  $document_root/$fastcgi_script_name;
27.fastcgi_param  SCRIPT_FILENAME  $request_filename;
28.include  fastcgi_params;
29.}
30.}



标签: 支持phpnginx配置aliasSCRIPT_FILENAME

作者:良玉 分类:Nginx 浏览:1681 评论:0
留言列表
发表评论
来宾的头像