Nginx虚拟目录支持PHP配置

Nginx虚拟目录支持PHP也是花了不少时间查找资料研究摸索,最终用下面两段解决。下面不是一段完整的Nginx配置文件,对于该配置片段简单解释如下:

1. 该文件配置一个主机www.mydomain.com在/data/Service下
2. 将一个在/data/Forum下的论坛程序挂在www.mydomain.com/Forum下,这里我用的是phpBB3
3. 将一个在/data/Mantis下的Bug跟踪管理程序MaintisBT挂在www.mydomain.com/Mantis

phpBB3和MantisBT分别是两个独立的PHP程序。

对于Nginx虚拟目录支持分两段:

1. 第一段用alias解决虚拟目录问题,使用rewrite处理访问重定向,并传递用于fastcgi的正确的脚本位置
2. 第二段用于处理所有的非PHP文件在虚拟目录中的访问,没有第二段,访问非PHP文件就是出现404

server {
   listen       80;
   server_name   www.mydomain.com;
   #root       /data/Service;
   charset       utf-8;
   access_log   /usr/local/nginx/logs/www.mydomain.com.access.log main;
   
   # Virtual directory with PHPsupport onnginx
   location ~ ^/Forum/.+\.php$ {
       alias       /data/Forum/;
       rewrite       /Forum/(.*\.php?) /$1 break;
       fastcgi_index   index.php;
       fastcgi_pass   127.0.0.1:9000;
       fastcgi_param   SCRIPT_FILENAME /data/Forum$fastcgi_script_name;
       include       fastcgi_params;
    }
    location ~^/Forum($|/.*) {
       alias       /data/Forum/$1;
       index       index.php index.html index.htm;
    }
   # Virtual directory with PHP support on nginx – end
   

   # Virtual directory with PHP support onnginx
   location ~ ^/Mantis/.+\.php$ {
       alias       /data/Mantis/;
       rewrite       /Mantis/(.*\.php?) /$1 break;
       fastcgi_index   index.php;
       fastcgi_pass   127.0.0.1:9000;
       fastcgi_param   SCRIPT_FILENAME /data/Mantis$fastcgi_script_name;
       include       fastcgi_params;
    }
    location ~^/Mantis($|/.*) {
     

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章