轉(zhuǎn)載請注明原作者
安裝nginx###
最近要搭http服務(wù)器哪工,經(jīng)過谷歌和請教高手般婆,決定選擇nginx,在window上搭建nginx账锹,網(wǎng)上一大堆萌业,都挺好使的,我參照的是:(原)nginx+FastCGI+c++奸柬。nginx安裝后生年,啟動的時候遇到了這個為問題:Win7下Nginx啟動失敗,80端口被占用然后在Win7下Nginx啟動失敗廓奕,80端口被占用找到了解決方法抱婉。
現(xiàn)在要說道問題的重點(diǎn)了,因?yàn)槲沂且肅++來處理前端的request桌粉,在網(wǎng)上找了下蒸绩,大部分都是關(guān)于PHP的,有用C++的铃肯,也寫的不是很清楚患亿,我就繼續(xù)谷歌,發(fā)現(xiàn)了一個老外的blog How to run fastcgi and nginx on windows押逼,與我的需求很匹配步藕,說的就是我需要解決的問題。具體參照過程中也遇到一些問題, 大概記錄了下挑格,現(xiàn)整理如下:
1. 下載了patch-2.5.9-7-bin.zip
在使用立馬說的patch工具時出現(xiàn)了問題咙冗,發(fā)現(xiàn)不能用,然后下載了patch-2.5.9-7-bin.zip漂彤,注意window下使用exe文件需要加絕對路徑的雾消。然后執(zhí)行bin目錄下的可執(zhí)行文件。
2. 下載fcgi.tar.gz
解壓后挫望,需要重新編譯生成二個文件libfcgi.dll和libfcgi.lib立润。但是因?yàn)閒cgi.tar.gz包中window相關(guān)的太老了,還是支持VC6士骤,我們現(xiàn)在都是VS2010范删,或者更高的版本蕾域,直接打開拷肌,根本不行到旦。這個時候就要用到patch工具了,網(wǎng)上有相關(guān)的patch巨缘,分別是:
1-align-x64.patch
2-socklen.patch
3-gcc44.patch
4-vc9.patch
5-build-warnings.patch
用patch去執(zhí)行這5個文件添忘,然后就可以支持VS2010了,這樣就可以去生成libfcgi.dll和libfcgi.lib文件了
3. 把libfcgi.dll文件拷貝到C:\nginx-1.8.0
需要把libfcgi.dll文件拷貝到C:\nginx-1.8.0若锁,準(zhǔn)確的說應(yīng)該是與spawn-fcgi.exe同一個目錄下搁骑,因?yàn)槲业膕pawn-fcgi.exe是放在C:\nginx-1.8.0,所以我的libfcgi.dll也是放在C:\nginx-1.8.0
4. 重啟nginx
最后執(zhí)行的時候又固,發(fā)現(xiàn)既然不成功仲器,后面想了一下,應(yīng)該是我改了nginx.conf仰冠,卻沒有重啟nginx導(dǎo)致的乏冀,后面執(zhí)行nginx -s reload,就可以了
備注###
1. nginx用到的命令整理:
start nginx 啟動Nginx服務(wù)器
nginx -s stop // 停止nginx
nginx -s reload // 重新加載配置文件
nginx -s quit // 退出nginx
**2. spawn-fcgi.exe命令:### **
spawn-fcgi.exe -f ./cgi-bin/echo-cpp.exe -a 127.0.0.1 -p 8089
3. 查看進(jìn)程:
tasklist | findstr "imagename eq nginx.exe" //列出nginx.exe進(jìn)程
tasklist | findstr “PID號”
netstat -ano | findstr "8081" //找到8081端口的進(jìn)程的PID