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

來源:互聯網
上載者:User

   在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檔案的路徑進行訪問,你會發現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也跟著結束的問題的。最後,寫了一個批次檔來啟動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頁面,一切正常了。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.