以前都是只配置nginx或者只配置mongodb,現在將其組合起來配合php在windows平台上搭建開發環境。
第一步:php的安裝與配置
到php官網下載php,至於怎麼安裝,就不詳細說了,下面會說一下配置(相信看這篇文章的人,既然有時間精力研究windows+nginx+mongodb+php,php的安裝更是小菜了),不過需要提醒各位的一點就是,不要下載php5.4以上的,因為後面php載入mongodb的時候,mongodb暫時沒有對應php5.4以上的版本驅動,另外nginx下php是以FastCGI的方式運行,所以我們下載非安全執行緒也就是nts的php包。
配置php:在php設定檔中找到:
extension_dir = "./ext"
改為:
extension_dir = "C:/wnmp/php/ext"
繼續往下找,找到:
;extension=php_mysql.dll;extension=php_mysqli.dll
選擇性的開啟想要php支援的功能,只需要去掉前面分號即可
接下來配置php使其與nginx結合
在php設定檔中找到:
;cgi.fix_pathinfo=1
去掉前面的分號,改為:
cgi.fix_pathinfo=1
第二步:nginx的安裝與配置
首先到官網下載最新版本的nginx,解壓到C盤的wnmp目錄下,並重新命名為nginx。接下來,我們來配置nginx,讓它能夠和php協同工作。進入nginx的conf目錄,開啟nginx的設定檔nginx.conf,找到
location / { root html; #這裡是網站的根目錄 index index.html index.htm;}
將 root html;改為 root D:/wnmp/www;
繼續往下找,找到:
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000##location ~ \.php$ {# root html;# fastcgi_pass 127.0.0.1:9000;# fastcgi_index index.php;# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;# include fastcgi_params;#}
先將前面的“#”去掉,同樣將root html;改為root C:/wnmp/www;(此時需要建立www檔案夾)。再把標記為紅色的/scripts改為“$document_root”,這裡的“$document_root”就是指前面“root”所指的網站路徑,這是改完後的:
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000#location ~ \.php$ { root D:/wnmp/www; 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的環境就初步配置好了,運行一下看看。我們可以輸入命令 :
C:\wnmp\php\php-cgi.exe -b 127.0.0.1:9000 -c C:/wnmp/php/php.ini
來啟動php,並手動啟動nginx,當然也可以利用指令碼來實現。
其實到這裡基本上已經完成了php+nginx的配置,但是今天自己配置的時候出現了下面這個問題,如果你也遇到了這樣的問題,可以參考下,如果沒有,可以跳過這部分
問題截圖:
然後就從百度上搜尋,有網友遇到了相同的問題,解決方案如下:
1、您可將下載來的msvcr110.dll(檔案下載地址:http://download.csdn.net/detail/zhang342789912/6539739)拷貝到指定目錄即可(一般是system系統目錄或放到軟體同級目錄裡面),或者重新添加檔案引用。
2、先將下載下來的檔案解壓, 然後根據您系統的情況選擇X86/X64,X86為32位電腦,X64為64位電腦。預設都是支援32位系統的, 如果您不知道是X86還是X64
3、根據軟體情況選擇檔案版本。此步驟比較複雜,如果是Windows的dll檔案,
版本號碼以5.0開頭的或含有 nt 一般是windows2000的檔案。
版本號碼以5.1開頭的或含有 xp、xpsp1、xpsp2、xpsp3 資訊的一般是windowsXP的檔案。
版本號碼以6.0開頭的或含有 longhorn、vista 資訊的一般是windowsVista的檔案。
版本號碼以6.1開頭的或含有 win7 資訊的一般是windows7的檔案。 如果不是windows的dll檔案,則需要靈活查看版本號碼、描述、網友提供的資訊、以及相關dll的版本號碼去判斷。
4、直接拷貝該檔案到系統目錄裡:
a、Windows 95/98/Me系統,將msvcr110.dll複製到C:\Windows\System目錄下。
b、Windows NT/2000系統,將msvcr110.dll複製到C:\WINNT\System32目錄下。
c、Windows XP/WIN7/Vista系統,將msvcr110.dll複製到C:\Windows\System32目錄下。
d、如果您的系統是64位的請將檔案複製到C:\Windows\SysWOW64目錄
第三步:下載RunHiddenConsole.zip地址:http://download.csdn.net/detail/zhang342789912/6540035
首先把下載好的RunHiddenConsole.zip包解壓到nginx目錄內,RunHiddenConsole.exe的作用是在執行完命令列指令碼後可以自動關閉指令碼,而從指令碼中開啟的進程不被關閉。然後來建立指令碼,命名為“start_nginx.bat”,我們在Notepad++裡來編輯它
@echo offREM Windows 下無效REM set PHP_FCGI_CHILDREN=5REM 每個進程處理的最大請求數,或設定為 Windows 環境變數set PHP_FCGI_MAX_REQUESTS=1000 echo Starting PHP FastCGI...RunHiddenConsole C:/wnmp/php/php-cgi.exe -b 127.0.0.1:9000 -c C:/wnmp/php/php.ini echo Starting nginx...RunHiddenConsole C:/wnmp/nginx/nginx.exe -p C:/wnmp/nginx
再另外建立一個名為stop_nginx.bat的指令碼用來關閉nginx
@echo offecho Stopping nginx... taskkill /F /IM nginx.exe > nulecho Stopping PHP FastCGI...taskkill /F /IM php-cgi.exe > nulexit
nginx配置好後,目錄結構大概是這個樣子的:
這樣,我們的服務指令碼也都建立完畢了。雙擊start_nginx.bat看看進程管理器會發現有兩個nginx.exe的進程和一個php-cgi.exe的進程
第四步:mongodb的下載與安裝
mongodb的下載與安裝前些時間我已經寫過了,可以參考http://blog.csdn.net/zhang342789912/article/details/9930973
下載和安裝好mongodb後就可以配置mongodb,是php支援mongodb了
首先,下載mongo的PHP驅動,下載地址:http://download.csdn.net/detail/zhang342789912/6540095
a、確定自己的PHP版本(phpinfo()函數可以列出自己的php版本)
b、按照是否安全執行緒選擇相應版本(有nts字樣的是非安全執行緒的(not thread safe),如果是apache伺服器選擇安全執行緒的,如果是用CGI方式運行就是非安全執行緒的)。
c、確定自己作業系統版本。(有64字樣的是64位作業系統,沒有的就是32位的)
比如:
php_mongo-1.3.0RC3-5.4-vc9-nts-x86_64.dll表示 :
PHP 版本為5.4
非安全執行緒的(nts)
64位作業系統(x86_64)
php_mongo-1.3.0RC3-5.4-vc9.dll 表示:
PHP 版本為5.4
安全執行緒的(沒有nts字樣)
32位作業系統(沒有明確表明64的,即為32位)
然後找到對應的檔案,將其複製到PHP安裝目錄下的” ext ” 子目錄,同時變更檔名為:php_mongo.dll,然後修改php.ini檔案,添加:
extension=php_mongo.dll
重新啟動apache(或者其他web伺服器)
驗證是否安裝成功。
開啟一個PHP網頁(裡面內容為如下),搜尋mongo,如果結果中出現mongo,則表示安裝成功。
如果啟動apache出現下圖所示的Warning。則表示你的PHP驅動選擇錯誤,可以嘗試其他驅動。