tengine+lua的安裝步驟


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

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

安裝 PCRE

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

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

PCRE在linux系統里被其它的軟件所依賴,所以一般的linux系統里都會裝有,但是否是最新版本,是否滿足要求,那就得看需求了。如果滿足不了的話,還是需要編譯安裝最新版本的pcre軟件。

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

系統里是否安裝了pcre軟件,我們可以使用rpm 命令進行查詢,如下命令
rpm -qa pcre

如果沒有顯示則表示還沒有安裝,如果顯示了,剛表示安裝了。如下圖

image 

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

如果需要新版本,則需要卸載掉就版本,然后安裝新版本。相關方法參看:

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對應的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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM