要求
-
必備知識
熟悉基本程式設計環境搭建。
-
執行環境
windows 7(64位);
nginx-1.4.7;
MySQL Server 5.5
php-5.4.39-nts -
下載地址
Nginx是一款輕量級的Web 伺服器/反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器,並在一個BSD-like 協議下發行。由俄羅斯的程式設計師Igor Sysoev所開發,供俄國大型的入口網站及搜尋引擎Rambler(俄文:Рамблер)使用。其特點是佔有記憶體少,併發能力強,事實上nginx的併發能力確實在同型別的網頁伺服器中表現較好,中國大陸使用nginx網站使用者有:新浪、網易、騰訊等。
上面這段介紹,摘自百度! 看了介紹就知道nginx很有逼格了shi不shi啊!那麼問題來了,這麼有逼格的配置,在windows下如何搭建呢? 好吧,就讓我給大家介紹一下,windows下如何搭建 nginx+mysql+php 環境吧。
官方下載地址
至於我使用的版本已經上傳到百度雲提供大家下載了哦,請戳以下連結:
Nginx
這麼有逼格的伺服器,我就不多做介紹,前面也提到了一些。我就直接安裝吧,把下載下來的nginx-1.4.7.zip檔案,解壓到指定的目錄就OK了,下面貼一下我的目錄結構哦
下面是nginx的一些基本操作指令,當然你也可以直接雙擊nginx.exe檔案來啟動伺服器(^_^)
start nginx //啟動服務 nginx -s stop // 停止nginx nginx -s reload // 重新載入配置檔案 nginx -s quit // 退出nginx
在瀏覽器地址中輸入localhost ,如出現下圖說明安裝成功了!
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(這就是我的配置檔案了)
修改如下程式碼,位置如下
修改網站的根目錄,新增index.php的預設頁支援,修改後的程式碼如下。
location / { root E:/2015/wnmp/nginx/html; index index.html index.htm index.php; }
讓nginx支援PHP的設定,程式碼位置如下
先將前面的“#”去掉,同樣將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!!
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
檔案目錄結構如下
好吧,整個就弄好了!!是不是比較複雜,沒關係! 請問你有到linux下交叉編譯安裝過伺服器環境嗎?(^_^)hahah~~~。關於linux下伺服器環境的“一攬子安裝計劃”,將到後續的文章中介紹!!點關注就對了(^_^)
如以上文章或連結對你有幫助的話,別忘了在文章結尾處輕輕點選一下 “還不錯”按鈕或到頁面右下角點選 “贊一個” 按鈕哦。你也可以點選頁面右邊“分享”懸浮按鈕哦,讓更多的人閱讀這篇文章。