win7下搭建nginx+php的開發環境

本來在win7下用的是IIS做web服務器,但近來因項目需求的原因,需要在服務器遇到404錯誤的時候自動做轉向(不是在客戶端的跳轉,而是在服務器收到客戶端請求去某目錄下讀取文件返回時,如果發現目錄或目錄下文件不存在,自動轉到另一個服務器去取),用IIS發現很難做到這點,於是決定搭建nginx的開發環境,通過配置實現這一點。

首先,google nginx和php,分別到他們的官網把最新版本的下載回來,我當時下的PHP是5.4.3的版本,nginx是1.5.2,我把他們都放在D盤下一個叫webserver的文件夾裏,然後開始做配置了。

nginx的啓動很簡單,進入它的目錄,然後雙擊nginx.exe,如果沒有端口衝突等問題的話,直接在瀏覽器輸入localhost就可以訪問welcome to nginx字樣的網頁了,這是默認的歡迎頁面,放在自帶的默認網頁文件目錄html下的。難道就這麼簡單嗎?當然不是的。

這時如果你在html目錄下建一個php文件,寫上一句測試php環境的最經典的<?php phpinfo(); ?>,然後在瀏覽器輸入這個php文件的路徑進行訪問,你會發現nginx根本不懂怎樣去解析php代碼,這是因爲nginx與PHP還沒有配合起來。按道理來說,當遇到php文件的時候,nginx應該把它交給php的fast-cgi來處理,然後把處理完的結果返回給客戶端(瀏覽器)的。

怎樣告訴nginx當遇到php文件時交給誰處理呢?打開nginx1.5.2的文件夾,找到conf目錄,編輯目錄下的nginx.conf文件,我的編輯結果如下所示,具體配置過程中需要注意什麼請看註釋:

server {
        listen       80;
        server_name  localhost;
	
        charset utf-8;

        location / {
            root   E:/work/jentian/client;//html文件目錄,由於我們項目的客戶端代碼與服務端服務是嚴格分開的,所以這裏的root跟php的root不同
            index index.html index.htm;
        }

        location ~ \.php {
		root E:/work/jentian/server;  //php文件目錄
            	fastcgi_param   SCRIPT_FILENAME     E:/work/jentian/server$fastcgi_script_name;//注意,$fastcgi_script_name前面的路徑必須與root是一致的
		fastcgi_index   index.php;
	        fastcgi_pass 127.0.0.1:9000;
		include   fastcgi_params;
        }
    }

nginx的配置也就這麼多了,很簡單吧,但這時候當你刷新php頁面的時候,會發現nginx現在還是沒有辦法解析php文件,原因在於php的fast-cgi還沒有啓動,如果打開一個普通的命令提示符窗口,然後輸入命令啓動fast-cgi時,啓動後這個窗口是不能關閉的,否則fast-cgi的進程也會終止,不能繼續解析php文件了,後來查了一下,原來windows是有一個運行隱形控制檯的方法的,用這個方法啓動fast-cgi,就不怕關閉控制檯後fast-cgi也跟着結束的問題的。這個文件叫RunHiddenConsole.exe,系統是沒有自帶的,所以要執行下面的批處理文件之前,需要百度一下,把它下載下來放到系統的system32文件夾中就可以了。

最後,寫了一個批處理文件來啓動fast-cgi和nginx,這能就能一鍵啓動nginx+php的環境了。下面是這個批處理文件的內容:

@echo off

set PHP_FCGI_MAX_REQUESTS = 1000

echo Starting PHP FastCGI...
rem 下面這裏的分別替換成你的php-cgi.exe和php.ini的路徑 ,後面的-b,-c等參數必須保留且注意前後空格
RunHiddenConsole D:/webServer/php-5.4.3/php-cgi.exe -b 127.0.0.1:9000 -c D:/webServer/php-5.4.3/php.ini //這裏

echo Starting nginx...
rem 注意替換成你的nginx目錄
D:/webServer/nginx-1.5.2/nginx.exe -p D:/webServer/nginx-1.5.2/

cd D:/webServer/nginx-1.5.2/

pause
把這個批處理文件保存到好,雙擊,就能啓動你的nginx+php環境了,這時再刷新一下你的phpinfo頁面,一切正常了。








從來佳茗似佳人。——宋·蘇軾: http://tea0760.taobao.com/

友情鏈接:井田商學院

發佈了70 篇原創文章 · 獲贊 64 · 訪問量 45萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章