tengine+lua的安裝步驟

我是在Red Hat 5.8 的虛機上安裝的。html

Nginx的一些模塊須要其餘第三方庫的支持,例如gzip模塊須要zlib庫,rewrite模塊須要pcre庫,ssl功能須要openssl庫等。建議把這些庫都安裝上。linux

安裝 PCRE

PCRE(Perl兼容正則表達式,Perl Compatible Regular Expressions),一個由Philip Hazel開發的,爲不少現代工具所使用的支持正則表達式的函數庫。nginx

編譯Nginx時須要用到PCRE,同時Nginx的Rewrite和http模塊也要用到PCRE的語法!須要安裝pcre包pcre-devel包。pcre包負責提供庫的編譯版本,pcre-devel包提供編譯項目時用到的開發頭文件和代碼!正則表達式

PCRE在linux系統裏被其它的軟件所依賴,因此通常的linux系統裏都會裝有,可是否是最新版本,是否知足要求,那就得看需求了。若是知足不了的話,仍是須要編譯安裝最新版本的pcre軟件。centos

檢查系統中是否安裝了PCRE軟件

系統裏是否安裝了pcre軟件,咱們能夠使用rpm 命令進行查詢,以下命令
rpm -qa pcretcp

若是沒有顯示則表示尚未安裝,若是顯示了,剛表示安裝了。以下圖函數

image 

上圖表示系統已經安裝過 pcre-6.6-9.e15 版本,可是沒有安裝 pcre-devel。工具

若是須要新版本,則須要卸載掉就版本,而後安裝新版本。相關方法參看:google

http://jingyan.baidu.com/article/f7ff0bfc6bc0472e26bb13bf.htmllua

安裝方法:

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對應的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 目錄下了。

執行命令以下:

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

 

 

編譯參數說明:

因爲 PCRE 咱們是經過 yum 安裝的,因此會有下面的參數設置  --with-pcre=/usr/include  

lua咱們是手工安裝的, 因此纔會有後面的參數設置 --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,則可執行文件默認放在/usr/local/bin,庫文件默認放在/usr/local/lib,配置文件默認放在/usr/local/etc。其它的資源文件放在/usr/local/share。你要卸載這個程序,要麼在原來的make目錄下用一次make uninstall(前提是make文件指定過uninstall),要麼去上述目錄裏面把相關的文件一個個手工刪掉。
指定prefix,直接刪掉一個文件夾就夠了。

http://blog.csdn.net/xiyangfan/article/details/5321790

 

--with-ld-opt

其中的 --with-ld-opt=-Wl,-rpath,/usr/local/lib:/opt/openresty/luajit/lib 參數的意思是:
這是連接器選項,目的是把 /usr/local/lib 和 /opt/openrersty/luajit/lib 這兩個路徑添加進
nginx 可執行文件的 RPATH 頭中,這樣在啓動的時候,系統就能夠找到正確的動態連接庫文件。

https://groups.google.com/forum/#!msg/openresty/mVi0p-Qx7Qg/zNyrOZi-slgJ 

 

啓動 nginx

啓動命令(咱們前面把 nginx 安裝在 /usr/local/nginx 目錄下了):

/usr/local/nginx/sbin/nginx

啓動後,本機訪問 http://localhost 會看到下面頁面:

image

修改  /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 會看到下面頁面:

 

image

防火牆設置

上面訪問是本機訪問的,若是咱們想其餘機子也能訪問,須要開放

直接關閉防火牆的命令:

service iptables stop

參考:http://kiddwyl.iteye.com/blog/67708

查看防火牆狀態
chkconfig iptables --list

打開 80 端口的訪問權限方法:

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端口經過防火牆)
特別提示:不少網友把這兩條規則添加到防火牆配置的最後一行,致使防火牆啓動失敗,正確的應該是添加到默認的22端口這條規則的下面(以下規則)
-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
http://huoding.com/2012/08/31/156

相關文章
相關標籤/搜索