我是在Red Hat 5.8 的虛機上安裝的。html
Nginx的一些模塊須要其餘第三方庫的支持,例如gzip模塊須要zlib庫,rewrite模塊須要pcre庫,ssl功能須要openssl庫等。建議把這些庫都安裝上。linux
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軟件,咱們能夠使用rpm 命令進行查詢,以下命令
rpm -qa pcretcp
若是沒有顯示則表示尚未安裝,若是顯示了,剛表示安裝了。以下圖函數
上圖表示系統已經安裝過 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
安裝方法:
yum install openssl openssl-devel
在安裝 openssl 時,會把咱們須要的其餘 zlib庫也作了安裝。
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/srcmake
make install
由於安裝在缺省路徑,因此LuaJIT對應的lib,include均在/usr/local目錄裏。
參考:
http://huoding.com/2012/08/31/156
我這裏使用的是 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 安裝在 /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 會看到下面頁面:
上面訪問是本機訪問的,若是咱們想其餘機子也能訪問,須要開放
直接關閉防火牆的命令:
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