- 論壇徽章:
- 0
|
我的電腦的內(nèi)存不多,跑apache久了感覺很吃力,Nginx吃內(nèi)存就像記事本吃那么點,所以我自己編譯一個來做開發(fā)用
安裝前提:
安裝好cygwin,并安裝了gcc和g++ (安裝見http://www.xueler.com/docs/tool/%E5%AE%89%E8%A3%85cygwin)
gzip 模塊需要 zlib 庫
rewrite 模塊需要 pcre 庫
安裝nginx前先將pcre和zlib裝好
如果要使用ssl,還要openssl庫
- 1、從nginx.net 下載源碼 nginx-0.7.24.tar.gz 存放到D:\linux\下
- 2、使用cygwin把nginx安裝到d:/server/nginx
安裝命令- cd /cygdrive/d/linux
- tar zxvf nginx-0.7.24.tar.gz
- cd nginx-0.7.24
- ./configure --prefix=/cygdrive/d/server/nginx --with-cc-opt="-D FD_SETSIZE=2048"
- make && make install
復(fù)制代碼 如果不加–with-cc-opt=”-D FD_SETSIZE=2048”的話,你裝好nginx后運行會出現(xiàn)
2008/01/12 16:34:56 [emerg] 2496#0: the maximum number of files supported by select() is 64的錯誤提示,這表示FD_SETSIZE的值比nginx配置文件中worker_connections指令所指定的值,你可以把nginx.conf里的worker_connections選項改小一些,比如44,加了–with-cc-opt=”-DFD_SETSIZE=2048”后就不會碰到這問題
- 3、從cygwin的bin目錄中把 cygcrypt-0.dll,cygpcre-0.dll,cygwin1.dll,cygz.dll拷貝到D:\server\nginx\sbin中
用cygwin編譯的nginx要獨立于cygwin運行的時候需要這幾個擴(kuò)展
到這里就安裝完成了,下面來配置。
php和MySQL什么裝這里就不說了,我用的php解壓在D:\server\php
如果沒有裝php和mysql,nginx這樣的安裝與配置照樣能跑靜態(tài)文件
我要打開一個cgi進(jìn)程來監(jiān)聽處理php腳本(在windows下開發(fā)打開一個cgi進(jìn)程已經(jīng)能解決問題了)
我要啟動nginx,MySQL,讓nginx把對腳本的請求轉(zhuǎn)發(fā)給php-cgi處理
我還要方便的關(guān)閉php-cgi、nginx和MySQL
打開在d:/server/nginx/conf/nginx.conf
這個配置文件里給我們創(chuàng)建了一個默認(rèn)的虛擬主機(jī)localhost,文檔根目錄在d:/server/nginx/html/
找到 index index.html index.htm;
改成 index index.html index.htm index.php;
添加了nginx支持默認(rèn)的php首頁
把內(nèi)容類似下面幾行配置的內(nèi)容前的注釋去掉并改成
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME D:/server/nginx/html$fastcgi_script_name;
include fastcgi_params;
}在d:/server/nginx下創(chuàng)建start.bat和stop.bat
內(nèi)容分別為:
d:/server/nginx/start.bat- @echo off
- echo php-cgi 正在啟動 ...
- start /b D:\server\php\php-cgi.exe -b 127.0.0.1:9000 -c d:\server\php\php.ini
- echo php-cgi 啟動完成 ...
- echo nginx 正在啟動 ...
- d:/server/nginx/sbin/nginx.exe
- echo nginx 啟動完成 ...
- net start mysql
- echo 啟動完成
復(fù)制代碼 d:/server/nginx/stop.bat- @echo off
- echo php-cgi 正在關(guān)閉 ...
- tskill php-cgi
- echo php-cgi 關(guān)閉完成
- echo nginx 正在關(guān)閉 ...
- tskill nginx
- echo nginx 關(guān)閉完成
- net stop mysql
- echo 關(guān)閉MySQL完成
復(fù)制代碼 打開d:/server/nginx/start.bat和d:/server/nginx/stop.bat就可以分別啟動和關(guān)閉nginx+php+mysql(cgi)了
盡管是編譯安裝nginx,但是nginx代碼不是很多,編譯安裝完成所需時間比安裝Dreamweaver CS4要快多了
因為使用的是cygwin環(huán)境來把unix軟件編譯到window下運行,所以這里有個問題是:我們只能在D:/server/nginx內(nèi)創(chuàng)建虛擬主機(jī)目錄,在D:/server/nginx之外將無法讀取到里面的web文檔文件
把 configure改成- ./configure --prefix=/cygdrive --http-fastcgi-temp-path=d/server/fastcgi_temp --http-proxy-temp-path=d/server/proxy_temp --http-client-body-temp-path=d/server/client_body_temp --http-log-path=d/server/logs/access.log --error-log-path=d/server/logs/error.log --pid-path=d/server/logs/nginx.pid --sbin-path=d/server/sbin/nginx --conf-path=d/server/conf/nginx.conf --with-cc-opt="-D FD_SETSIZE=2048"
復(fù)制代碼 可以讓nginx讀到nginx prefix以外的分區(qū),但分區(qū)名中不能帶: 并且只能用/,不能用\
比如把root設(shè)置到e:\web要寫成 root e/web
下載我編譯和配置好的nginx0.7.24,編譯后的文件很小,里面占空間的是安裝流程文件
這篇帖子在這里更新 |
|