天天看點

編譯nginx SRPM

 編譯SRPM包的好處有很多,

1、獲得源碼編譯的良好性能

2、獲得标準的二進制rpm安裝包

3、自定義編譯參數

4、添加第三方編譯子產品(對于nginx)

下載下傳nginx 的SRPM包

# cd /tmp 

# wget http://nginx.org/packages/centos/6/SRPMS/nginx-1.2.3-1.el6.ngx.src.rpm 

# chmod 777 nginx-1.2.3-1.el6.ngx.src.rpm 

安裝編譯環境

# yum groupinstall "development" 

安裝nginx依賴環境 

# yum install zlib-devel pcre-devel openssl-devel 

rpm-rebuild不能以root身份進行,是以要建立一個普通使用者

#useradd joe 

# su joe 

$ cp /tmp/nginx-1.2.3-1.el6.ngx.src.rpm ~/ 

$ rpm --nomd5 -i nginx-1.2.3-1.el6.ngx.src.rpm 

$ cd /home/joe/rpmbuild/SPECS 

$ vi nginx.spec 

nginx.spec 裡包含了編譯參數,預設的參數很全,我們可以根據需要進行裁剪,

一些不常用的參數可以去掉,(一共有兩處要改)比如

--with-http_addition_module

--with-mail

--with-mail_ssl_module

--with-http_flv_module

--with-http_dav_module

--with-http_mp4_module

--with-ipv6

安裝google-perftools

# wget http://code.google.com/p/gperftools/downloads/detail?name=gperftools-2.0.tar.gz&can=2&q=

#tar zxvf google-perftools-2.0.tar.gz

# cd google-perf-tools

# make && make install

增加編譯參數

--with-google_perftools_module

 nginx識别google-perftools的預設路徑在/usr/local,如果你是使用epel裡的gperftools-libs,那麼你需要修改nginx源碼nginx-1.x.x/auto/lib/google-perftools/conf,

ngx_feature="Google perftools in /usr/local"   

将路徑改為/usr/lib64或/usr/lib 。

安裝nasxi子產品

在Source段添加一個資源

Source7: nginx.suse.init 

Source8: naxsi-core-0.50.tgz 

解壓

%prep 

%setup -q 

%{__tar} zxvf %{SOURCE8} 

%build 

添加編譯參數,一共有兩處

--with-http_stub_status_module \ 

--add-module=%{_builddir}/nginx-%{version}/naxsi-core-0.50/naxsi_src \ 

--with-file-aio \ 

(nasxi配置檔案暫時還沒在編譯行列)

接上面的步驟,編譯nginx

$ rpm-rebuild -ba nginx.spec 

經過編譯後,會得到我們想要的軟體包

 /home/joe/rpmbuild/RPMS/x86_64/nginx-1.2.3-1.el6.ngx.x86_64.rpm

本文轉自 紫色葡萄 51CTO部落格,原文連結:http://blog.51cto.com/purplegrape/961014,如需轉載請自行聯系原作者

繼續閱讀