我是在Red Hat 5.8 的虛機上安裝的。
Nginx的一些模塊需要其他第三方庫的支持,例如gzip模塊需要zlib庫,rewrite模塊需要pcre庫,ssl功能需要openssl庫等。建議把這些庫都安裝上。
安裝 PCRE
PCRE(Perl兼容正則表達式,Perl Compatible Regular Expressions),一個由Philip Hazel開發(fā)的,為很多現(xiàn)代工具所使用的支持正則表達式的函數(shù)庫。
編譯Nginx時需要用到PCRE,同時Nginx的Rewrite和http模塊也要用到PCRE的語法!需要安裝pcre包pcre-devel包。pcre包負責提供庫的編譯版本,pcre-devel包提供編譯項目時用到的開發(fā)頭文件和代碼!
PCRE在linux系統(tǒng)里被其它的軟件所依賴,所以一般的linux系統(tǒng)里都會裝有,但是否是最新版本,是否滿足要求,那就得看需求了。如果滿足不了的話,還是需要編譯安裝最新版本的pcre軟件。
檢查系統(tǒng)中是否安裝了PCRE軟件
系統(tǒng)里是否安裝了pcre軟件,我們可以使用rpm 命令進行查詢,如下命令
rpm -qa pcre
如果沒有顯示則表示還沒有安裝,如果顯示了,剛表示安裝了。如下圖
上圖表示系統(tǒng)已經(jīng)安裝過 pcre-6.6-9.e15 版本,但是沒有安裝 pcre-devel。
如果需要新版本,則需要卸載掉就版本,然后安裝新版本。相關(guān)方法參看:
http://jingyan.baidu.com/article/f7ff0bfc6bc0472e26bb13bf.html
安裝方法:
yum install pcre pcre-devel
yum 安裝的文件可以用下面命令來找安裝在那個目錄下:
rpm –ql pcre
參考: http://blog.csdn.net/ngvjai/article/details/7997743
安裝 openssl
安裝方法:
yum install openssl openssl-devel
在安裝 openssl 時,會把我們需要的其他 zlib庫也做了安裝。
安裝 lua
yum安裝:
yum install lua lua-devel
安裝Lua或者LuaJIT都是可以的,但是出于效率的考慮,推薦安裝LuaJIT。下面的源碼例子就是安裝LuaJIT
源碼安裝:
lua下載地址: http://luajit.org/
我這里下載的是:LuaJIT-2.0.1.tar.gz 下載在 /usr/local/src 目錄下。
安裝命令:
cd /usr/local/src
tar zxvf LuaJIT-2.0.1.tar.gz
cd LuaJIT-2.0.1
make
make install
因為安裝在缺省路徑,所以LuaJIT對應(yīng)的lib,include均在/usr/local目錄里。
參考:
http://huoding.com/2012/08/31/156
安裝 tengine
我這里使用的是 tengine-1.4.6.tar.gz 。 下載地址: http://tengine.taobao.org/download
我把下載好的源文件放在 /usr/local/src 目錄下了。
執(zhí)行命令如下:
cd /usr/local/src
tar zxvf tengine-1.4.6.tar.gz
cd tengine-1.4.6
配置命令
./configure --prefix=/usr/local/nginx --with-pcre=/usr/include --with-http_lua_module --with-luajit-lib=/usr/local/lib/ --with-luajit-inc=/usr/local/include/luajit-2.0/ --with-lua-inc=/usr/local/include/luajit-2.0/ --with-lua-lib=/usr/local/lib/ --with-ld-opt=-Wl,-rpath,/usr/local/lib
make
make install
編譯參數(shù)說明:
由于 PCRE 我們是通過 yum 安裝的,所以會有下面的參數(shù)設(shè)置 --with-pcre=/usr/include
lua我們是手工安裝的, 所以才會有后面的參數(shù)設(shè)置 --with-http_lua_module --with-luajit-lib=/usr/local/lib/ --with-luajit-inc=/usr/local/include/luajit-2.0/ --with-lua-inc=/usr/local/include/luajit-2.0/ --with-lua-lib=/usr/local/lib/
--prefix
編譯后,計劃安裝的目錄
它的作用:不指定prefix,則可執(zhí)行文件默認放在/usr/local/bin,庫文件默認放在/usr/local/lib,配置文件默認放在/usr/local/etc。其它的資源文件放在/usr/local/share。你要卸載這個程序,要么在原來的make目錄下用一次make uninstall(前提是make文件指定過uninstall),要么去上述目錄里面把相關(guān)的文件一個個手工刪掉。
指定prefix,直接刪掉一個文件夾就夠了。
http://blog.csdn.net/xiyangfan/article/details/5321790
--with-ld-opt
其中的 --with-ld-opt=-Wl,-rpath,/usr/local/lib:/opt/openresty/luajit/lib 參數(shù)的意思是:
這是鏈接器選項,目的是把 /usr/local/lib 和 /opt/openrersty/luajit/lib 這兩個路徑添加進
nginx 可執(zhí)行文件的 RPATH 頭中,這樣在啟動的時候,系統(tǒng)就可以找到正確的動態(tài)鏈接庫文件。
https://groups.google.com/forum/#!msg/openresty/mVi0p-Qx7Qg/zNyrOZi-slgJ
啟動 nginx
啟動命令(我們前面把 nginx 安裝在 /usr/local/nginx 目錄下了):
/usr/local/nginx/sbin/nginx
啟動后,本機訪問 http://localhost 會看到下面頁面:
修改 /usr/local/nginx/conf/nginx.conf 文件
增加下面幾行代碼:
location /hello {
default_type 'text/plain';
content_by_lua 'ngx.say("hello, lua")';
}
然后使用 下面命令重新啟動 nginx
/usr/local/nginx/sbin/nginx -s reload
重啟命令參考: http://xuun.net/2010/02/16/nginx-restart/
本機訪問 http://localhost/hello 會看到下面頁面:
防火墻設(shè)置
上面訪問是本機訪問的,如果我們想其他機子也能訪問,需要開放
直接關(guān)閉防火墻的命令:
service iptables stop
參考:http://kiddwyl.iteye.com/blog/67708
查看防火墻狀態(tài)
chkconfig iptables --list
打開 80 端口的訪問權(quán)限方法:
vi /etc/sysconfig/iptables
-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT(允許80端口通過防火墻)
-A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT(允許3306端口通過防火墻)
特別提示:很多網(wǎng)友把這兩條規(guī)則添加到防火墻配置的最后一行,導致防火墻啟動失敗,正確的應(yīng)該是添加到默認的22端口這條規(guī)則的下面(如下規(guī)則)
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
/etc/init.d/iptables restart
#最后重啟防火墻使配置生效
參考資料:
centos linux 編譯安裝pcre軟件
http://jingyan.baidu.com/article/f7ff0bfc6bc0472e26bb13bf.html
Nginx與Lua
注意:
安裝tengine-1.4.1,如果make的時候遇到如下錯誤:
------------
cd /usr/ \
&& make clean \
&& ./config --prefix=/usr//.openssl no-shared no-threads \
&& make \
&& make install LIBDIR=lib
make[2]: Entering directory `/usr'
make[2]: *** 沒有規(guī)則可以創(chuàng)建目標“clean”。 停止。
make[2]: Leaving directory `/usr'
make[1]: *** [/usr//.openssl/include/openssl/ssl.h] 錯誤 2
make[1]: Leaving directory `/usr/local/tengine-1.4.1'
make: *** [build] 錯誤 2
-----或者-----
cd /usr/ \
&& make clean \
&& ./config --prefix=/usr//.openssl no-shared no-threads \
&& make \
&& make install LIBDIR=lib
make[2]: Entering directory `/usr'
make[2]: *** No rule to make target `clean'. Stop.
make[2]: Leaving directory `/usr'
make[1]: *** [/usr//.openssl/include/openssl/ssl.h] Error 2
make[1]: Leaving directory `/user/local/tengine-1.4.1'
make: *** [build] Error 2
則需下載openssl,并解壓縮
3、然后安裝tengine-1.4.1
tar zxvf tengine-1.4.1.tar.gz && cd tengine-1.4.1
./configure --prefix=/usr/local/tengine --with-http_stub_status_module --with-openssl=/usr/local/openssl-1.0.1c --with-pcre=/usr/local/pcre-8.31
make
make install
注意,--with-openssl指向的是openssl的源代碼目錄,--with-pcre也是指向源代碼目錄
-----------------------------------------------------
轉(zhuǎn)載請注明來源此處
原地址:http://blog.mn886.net/chenjianhua/show/9ba8da15ba9f/index.html
聯(lián)系客服