CentOS7 源碼編譯安裝Tengine

簡介

 

Tengine是由淘寶網發起的Web服務器項目。它在Nginx的基礎上,針對大訪問量網站的需求,添加了不少高級功能和特性。它的目的是打造一個高效、安全的Web平臺。nginx

發展

Tengine的性能和穩定性已經在大型的網站如淘寶網,天貓商城等獲得了很好的檢驗。c++

從2011年12月開始,Tengine成爲一個開源項目,Tengine團隊在積極地開發和維護着它。Tengine團隊的核心成員來自於淘寶、搜狗等互聯網企業。Tengine是社區合做的成果,咱們歡迎你們參與其中,貢獻本身的力量。git

1、安裝編譯環境

1.安裝依賴包github

[root@Tengine ~]# yum -y install gcc \ 
gcc-c++ \ bzip2 perl curl curl-devel \
expat-devel gettext-devel openssl-devel \
libxml2 libxml2-devel libjpeg-devel libpng-devel \
freetype-devel libmcrypt-devel autoconf

2.配置擴展包安裝源正則表達式

[root@Tengine ~]# yum -y install epel-release
[root@Tengine ~]# yum -y install libmcrypt libmcrypt-devel mcrypt mhash 

3.安裝編譯所須要的組件算法

(1)pcre:是一個Perl庫,包括 perl 兼容的正則表達式庫。nginx rewrite依賴於PCRE庫,因此在安裝Tengine前必定要先安裝PCRE。安全

[root@Tengine ~]# cd /usr/local/src && wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.42.tar.gz && tar zxvf pcre-8.42.tar.gz && cd pcre-8.42 && ./configure --prefix=/usr/local/pcre && make && make install

(2)zlib:Zlib是提供資料壓縮之用的函式庫,當Tengine想啓用GZIP壓縮的時候就須要使用到Zlib。服務器

[root@Tengine pcre-8.42]# cd /usr/local/src && wget http://zlib.net/zlib-1.2.11.tar.gz && tar zxvf zlib-1.2.11.tar.gz && cd zlib-1.2.11 && ./configure --prefix=/usr/local/zlib && make && make install

(3)jemalloc:是一個更好的內存管理工具,使用jemalloc能夠更好的優化Tengine的內存管理。curl

[root@Tengine zlib-1.2.11]# cd /usr/local/src && wget https://github.com/jemalloc/jemalloc/releases/download/5.1.0/jemalloc-5.1.0.tar.bz2 && tar xvf jemalloc-5.1.0.tar.bz2 && cd jemalloc-5.1.0 && ./configure --prefix=/usr/local/jemalloc && make && make install

(4)OpenSSL:是一個強大的安全套接字層密碼庫,囊括主要的密碼算法、經常使用的密鑰和證書封裝管理功能及SSL協議,並提供豐富的應用程序供測試或其它目的使用。主要是爲了讓tengine支持Https的訪問請求。工具

[root@Tengine jemalloc-5.1.0]# cd /usr/local/src && wget https://www.openssl.org/source/openssl-1.1.1.tar.gz && tar zxvf openssl-1.1.1.tar.gz && cd openssl-1.1.1 && ./config --prefix=/usr/local/openssl && make && make install

2、安裝Tengine

在主要核心的組件安裝完畢之後就能夠安裝Tegine了,最新版本的Tegine可從官網(http://tengine.taobao.org/)獲取。
在編譯安裝前還須要作的一件事是添加一個專門的用戶來執行Tengine。不建議使用root用戶啓動

[root@Tengine openssl-1.1.1]#  useradd www -s /sbin/nologin -M

下載Tengine

[root@Tengine openssl-1.1.1]# cd /usr/local/src && wget http://tengine.taobao.org/download/tengine-2.2.3.tar.gz && tar -zxvf tengine-2.2.3.tar.gz && cd tengine-2.2.3

配置編譯安裝

[root@Tengine tengine-2.2.3]# ./configure --prefix=/usr/local/tengine \
> --user=www \
> --group=www \
> --with-pcre=/usr/local/src/pcre-8.42 \
> --with-openssl=/usr/local/src/openssl-1.1.1 \
> --with-jemalloc=/usr/local/src/jemalloc-5.1.0 \
> --with-http_gzip_static_module \
> --with-http_realip_module \
> --with-http_stub_status_module \
> --with-http_concat_module=shared \
> --with-zlib=/usr/local/src/zlib-1.2.11

 

[root@Tengine tengine-2.2.3]# echo $?
0
[root@Tengine tengine-2.2.3]# make -j 4&&make install

[root@Tengine tengine-2.2.3]# echo $?
0

加入到系統服務

[root@Tengine tengine-2.2.3]# cd /lib/systemd/system
[root@Tengine system]# vi tengine.service
[Unit]
Description=The nginx HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target
[root@Tengine system]# chmod 745 nginx.service  # 修改權限
[root@Tengine system]# systemctl enable tengine.service  # 開機自啓
Created symlink from /etc/systemd/system/multi-user.target.wants/tengine.service to /usr/lib/systemd/system/tengine.service.
[root@Tengine system]# systemctl start tengine.service #啓動Tengine

安裝完成

可能有的人在make的時候會報這個錯 我在安裝2.2.3時也碰到了這個問題

上面出錯根本緣由是編譯nginx找不到實時庫librt

只要將tengine文件中的objs/Makefile中的第一行的 CC =    cc 改爲 CC =    cc -lrt後在編譯安裝就能夠了

-lrt的意思是讓編譯的時候加入實時庫librt

相關文章
相關標籤/搜索