wnmp(windows+nginx+mysql+php)環境搭建和配置

要求

    • 必備知識

      熟悉基本編程環境搭建。php

    • 運行環境

      windows 7(64位);
      nginx-1.4.7;
      MySQL Server 5.5
      php-5.4.39-nts html

    • 下載地址

      環境下載mysql

Nginx是一款輕量級的Web 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器,並在一個BSD-like 協議下發行。由俄羅斯的程序設計師Igor Sysoev所開發,供俄國大型的入口網站及搜索引擎Rambler(俄文:Рамблер)使用。其特色是佔有內存少,併發能力強,事實上nginx的併發能力確實在同類型的網頁服務器中表現較好,中國大陸使用nginx網站用戶有:新浪、網易、騰訊等。

上面這段介紹,摘自百度! 看了介紹就知道nginx頗有逼格了shi不shi啊!那麼問題來了,這麼有逼格的配置,在windows下如何搭建呢? 好吧,就讓我給你們介紹一下,windows下如何搭建 nginx+mysql+php 環境吧。linux

官方下載地址

至於我使用的版本已經上傳到百度雲提供你們下載了哦,請戳如下連接:nginx

Nginx

這麼有逼格的服務器,我就很少作介紹,前面也提到了一些。我就直接安裝吧,把下載下來的nginx-1.4.7.zip文件,解壓到指定的目錄就OK了,下面貼一下個人目錄結構哦sql

2015-04-08_204635

下面是nginx的一些基本操做指令,固然你也能夠直接雙擊nginx.exe文件來啓動服務器(^_^)編程

start nginx    //啓動服務
 nginx -s stop    // 中止nginx
nginx -s reload    // 從新加載配置文件
nginx -s quit    // 退出nginx

在瀏覽器地址中輸入localhost ,如出現下圖說明安裝成功了!windows

2015-04-08_205725

MySql

關於mysql的安裝,請自行去解決(^_^),我不想多說了!好吧,能夠參考我以前寫一篇文章,裏面有詳細的介紹哦,你會明白的(^_^)瀏覽器

PHP

關於PHP的安裝,我也不想說了! 額,你其實也能夠參考。。。你會懂的,哈哈!好吧,往下看吧!安全

php提供了兩種版本能夠選擇,即線程安全和非線程安全

  • TS:Thread Safe 線程安全, 執行時會進行線程(Thread)安全檢查,以防止有新要求就啓動新線程的CGI執行方式而耗盡系統資源
  • NTS:Non Thread Safe 非線程安全, 在執行時不進行線程(Thread)安全檢查

PHP的兩種執行方式:ISAPI和FastCGI。

  • CGI(通用網關接口/Common Gateway Interface)通常是可執行程序,例如EXE文件,和WEB服務器各自佔據着不一樣的進程,並且通常一個CGI程序只能處理一個用戶請求。這樣,當用 戶請求數量很是多時,會大量佔用系統的資源,如內存、CPU時間等,形成效能低下。
  • ISAPI(Internet Server Application Program Interface)是微軟提供的一套面向WEB服務的API接口,它能實現CGI提供的所有功能,並在此基礎上進行了擴展,如提供了過濾器應用程序接 口。ISAPI應用大多數以DLL動態庫的形式使用,能夠在被用戶請求後執行,,在處理完一個用戶請求後不會立刻消失,而是繼續駐留在內存中等待處理別的 用戶輸入。此外,ISAPI的DLL應用程序和WEB服務器處於同一個進程中,效率要顯著高於CGI。因此若是是以ISAPI來執行PHP,建議選擇Thread Safe版本
  • FastCGI是可伸縮架構的CGI開放擴展,其主要行爲是將CGI解釋器進程保持在內存中並所以得到較高的性能。傳統的CGI解釋器的反覆加載是 CGI性能低下的主要緣由,若是CGI解釋器保持在內存中並接受FastCGI進程管理器調度,則能夠提供良好的性能、伸縮性等。nginx下php是以FastCGI的方式運行,因此咱們下載Non Thread Safe版本.

我知道你已經懂了,shi不shi呀! 不過網上有些人下的TS有的人下的NTS的,選擇困難症有犯了,哈哈~~~!下非線程安全的吧,由於我就下的就是這個,待會本身去百度雲下的時候別選錯了哦~~

將壓縮文件解壓到指定的文件夾(這裏你愛咋整就咋整,能夠參考我上面的目錄結構)。配置php.ini文件,php提供了兩個模板,php.ini-development和php.ini-production,前者適合開發程式使用(測試用),後者擁有較高的安全性設定,則適合上線當產品使用。這裏咱們將php.ini-development文件改成php.ini作配置文件使用。

修改擴展dll文件目錄:

//這裏根據本身的實際狀況而定
extension_dir = "E:\2015\wnmp\php\ext"

 

加入擴展:

選擇須要運行哪些擴展,只需將extension前面的註釋去掉,例如:

extension=php_mysql.dll
extension=php_mysqli.dll

 

CGI 設置

enable_dl = On
cgi.force_redirect = 0
cgi.fix_pathinfo=1
fastcgi.impersonate = 1
cgi.rfc2616_headers = 1

 

配置Nginx

這裏所說的配置,主要是講如何讓Nginx對PHP提供支持!!打開nginx目錄下conf文件夾裏的nginx.conf(這就是個人配置文件了)

修改以下代碼,位置以下

2015-04-08_225508

修改網站的根目錄,添加index.php的默認頁支持,修改後的代碼以下。

location / {
            root   E:/2015/wnmp/nginx/html;
            index  index.html index.htm index.php;
}

讓nginx支持PHP的設置,代碼位置以下

2015-04-08_230148

先將前面的「#」去掉,一樣將root  html;改成root  E:/2015/wnmp/nginx/html;。再把「/scripts」改成「$document_root」,這裏的「$document_root」就是指前面「root」所指的站點路徑,改完後的代碼以下:

location ~ \.php$ {
            root           E:/2015/wnmp/nginx/html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
}

 

上述配置改成後,別玩了要重啓nginx哦,操做指令我已經到上面給出了啊!

測試

啓動php內置的cgi程序,在9000端口監聽nginx發過來的請求:

E:\2015\wnmp\php>php-cgi.exe -b 127.0.0.1:9000-c E:\wnmp\php\php.ini

PS:上一步操做中若是沒有重啓nginx的話,如今重啓一遍吧!!

在網站更目錄(上步操做中root所指向的路徑我這裏是 E:/2015/wnmp/nginx/html)下建立phpinfo.php文件,代碼以下

<?php phpinfo(); ?>

在瀏覽器地址欄中輸入http://localhost/phpinfo.php,一次性點亮,是否是很Happy!!

2015-04-09_001013

RunHiddenConsole配置

首先把下載好的RunHiddenConsole.zip包解壓到nginx目錄內,RunHiddenConsole.exe的做用是在執行完命令行腳本後能夠自動關閉腳本,而從腳本中開啓的進程不被關閉。

建立start_nginx.bat文件

@echo off
REM Windows 下無效
REM set PHP_FCGI_CHILDREN=5

REM 每一個進程處理的最大請求數,或設置爲 Windows 環境變量
set PHP_FCGI_MAX_REQUESTS=1000
 
echo Starting PHP FastCGI...
RunHiddenConsole E:/2015/wnmp/php/php-cgi.exe -b 127.0.0.1:9000 -c E:/2015/wnmp/php/php.ini
 
echo Starting nginx...
RunHiddenConsole E:/2015/wnmp/nginx/nginx.exe -p E:/2015/wnmp/nginx

建立stop_nginx.bat腳本,對應的是用來關閉nginx服務

@echo off
echo Stopping nginx...  
taskkill /F /IM nginx.exe > nul
echo Stopping PHP FastCGI...
taskkill /F /IM php-cgi.exe > nul
exit

文件目錄結構以下

end

好吧,整個就弄好了!!是否是比較複雜,不要緊! 請問你有到linux下交叉編譯安裝過服務器環境嗎?(^_^)hahah~~~。關於linux下服務器環境的「一攬子安裝計劃」,將到後續的文章中介紹!!點關注就對了(^_^)

如以上文章或連接對你有幫助的話,別忘了在文章結尾處輕輕點擊一下 「還不錯」按鈕或到頁面右下角點擊 「贊一個」 按鈕哦。你也能夠點擊頁面右邊「分享」懸浮按鈕哦,讓更多的人閱讀這篇文章。

做者: Li-Cheng
因爲本人水平有限,文章在表述和代碼方面若有不妥之處,歡迎批評指正。留下你的腳印,歡迎評論哦。你也能夠關注我,一塊兒學習哦!

(^_^)若是您以爲此文對您有幫助的話,打個賞喝個咖啡吧,麼麼噠(^_^)

相關文章
相關標籤/搜索