nginx 配置虚拟目录并支持php

回复 收藏
问题:
www.111.com 站点的root目录为 /data/web/ ,现在想在www.111.com 下放一个站点,www.111.com/abc/
但不能直接在/data/web/下创建abc目录,要放在 /data1/abc/下。

解决办法:
使用nginx的alias功能实现虚拟目录
在配置文件中加入
location ~ /abc/(.*)$ {
       alias /data1/abc/$1;
}
当然,alias后面跟的目录可以随意,只要是你放程序的目录即可。也就是说,alias后面定义的/data1/abc/ 也可以使/data1/123/
此时,访问图片,网页,css以及js都没有问题,但是访问php就会报404. 怎么办?

继续加如下配置,但注意,要加在上面那段location配置的前面,否则不生效。
location ~ /abc/.+\.php$ {
            root /data1/;
            rewrite /abc/(.*\.php) /$1 break;
            include fastcgi_params;
            fastcgi_pass  unix:/tmp/php-fcgi.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME /data1/abc/$fastcgi_script_name;
}
到此,也可以支持php了。
2012-04-08 13:07 举报
已邀请:
0

Coohx - 小运维

赞同来自:

location ~ /abc/(.*)$ {
       alias /data1/abc/$1;
}   
这里的$1代表什么,我们之前使用的时候,前面都有个$去标识某一个实体呀,为什么直接$1?

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: