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($|/.*) {
     

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