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

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

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

一、方法一:(不推荐)

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

block !important; margin: 0px !important; padding: 0px 0.3em 0px 0px !important; vertical-align: baseline !important; border: 0px !important; font-size: 1em !important; line-height: 1.1em !important; font-family: Consolas, Monaco, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; outline: 0px !important; text-align: right !important; float: left !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: 3em !important; color: rgb(92, 92, 92) !important; background: none !important;">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.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 浏览:2057 评论:0
留言列表
发表评论
来宾的头像