centos7.x编译安装淘宝tengine-2.1.2

下载所有包,jemalloc(可选)用于优化内存

yumgroupsinstall"DevelopmentTools"-y
yum-yinstallbzip2
wget-cftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.40.tar.gz
wget-chttp://www.openssl.org/source/openssl-1.0.2g.tar.gz
wget-chttp://www.zlib.net/zlib-1.2.11.tar.gz
wget-chttp://tengine.taobao.org/download/tengine-2.1.2.tar.gz
#wgethttp://www.canonware.com/download/jemalloc/jemalloc-3.6.0.tar.bz2
tar-zxfpcre-8.40.tar.gz-C/usr/local/src/
tar-zxfopenssl-1.0.2g.tar.gz-C/usr/local/src/
tar-zxfzlib-1.2.11.tar.gz-C/usr/local/src/
tar-zxftengine-2.1.2.tar.gz-C/usr/local/src/
#tarjxvfjemalloc-3.6.0.tar.bz2-C/usr/local/src/

1、安装pcre

mkdir/usr/local/pcre

cd/usr/local/src/pcre-8.40

./configure--prefix=/usr/local/pcre

make-j

makeinstall

2、安装openssl

mkdir/usr/local/openssl

cd/usr/local/src/openssl-1.0.2g/

./config--prefix=/usr/local/openssl

makedepend

make-j

makeinstall

vi /etc/profile

exportPATH=$PATH:/usr/local/openssl/bin
or
echo"exportPATH=$PATH:/usr/local/openssl/bin">>/etc/profile

:wq!

source/etc/profile

3、安装zlib

mkdir/usr/local/zlib

cd/usr/local/src/zlib-1.2.11

./configure--prefix=/usr/local/zlib

make-j

makeinstall

4、安装Nginx

groupaddwww

useradd-gwwwwww-s/bin/false

cd/usr/local/src/tengine-2.1.2/

#开启jemalloc内存优化
./configure--prefix=/usr/local/nginx--without-http_memcached_module--user=www--group=www--with-http_stub_status_module--with-http_ssl_module--with-http_gzip_static_module--with-openssl=/usr/local/src/openssl-1.0.2g--with-zlib=/usr/local/src/zlib-1.2.11--with-pcre=/usr/local/src/pcre-8.40--with-jemalloc=/usr/local/src/jemalloc-3.6.0

make

makeinstall

注意:--with-openssl=/usr/local/src/openssl-1.0.2g --with-zlib=/usr/local/src/zlib-1.2.11 --with-pcre=/usr/local/src/pcre-8.40指向的是源码包解压的路径,而不是安装的路径,否则会报错


5、添加开机启动脚本

/usr/local/nginx/sbin/nginx#启动Nginx

设置nginx开机启动

vi/etc/rc.d/init.d/nginx#编辑启动文件添加下面内容

############################################################

#!/bin/sh

#

#nginx-thisscriptstartsandstopsthenginxdaemon

#

#chkconfig:-8515

#description:NginxisanHTTP(S)server,HTTP(S)reverse\

#proxyandIMAP/POP3proxyserver

#processname:nginx

#config:/etc/nginx/nginx.conf

#config:/usr/local/nginx/conf/nginx.conf

#pidfile:/usr/local/nginx/logs/nginx.pid

#Sourcefunctionlibrary.

./etc/rc.d/init.d/functions

#Sourcenetworkingconfiguration.

./etc/sysconfig/network

#Checkthatnetworkingisup.

["$NETWORKING"="no"]&&exit0

nginx="/usr/local/nginx/sbin/nginx"

prog=$(basename$nginx)

NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"

[-f/etc/sysconfig/nginx]&&./etc/sysconfig/nginx

lockfile=/var/lock/subsys/nginx

make_dirs(){

#makerequireddirectories

user=`$nginx-V2>&1|grep"configurearguments:"|sed's/[^*]*--user=\([^]*\).*/\1/g'-`

if[-z"`grep$user/etc/passwd`"];then

useradd-M-s/bin/nologin$user

fi

options=`$nginx-V2>&1|grep'configurearguments:'`

foroptin$options;do

if[`echo$opt|grep'.*-temp-path'`];then

value=`echo$opt|cut-d"="-f2`

if[!-d"$value"];then

#echo"creating"$value

mkdir-p$value&&chown-R$user$value

fi

fi

done

}

start(){

[-x$nginx]||exit5

[-f$NGINX_CONF_FILE]||exit6

make_dirs

echo-n$"Starting$prog:"

daemon$nginx-c$NGINX_CONF_FILE

retval=$?

echo

[$retval-eq0]&&touch$lockfile

return$retval

}

stop(){

echo-n$"Stopping$prog:"

killproc$prog-QUIT

retval=$?

echo

[$retval-eq0]&&rm-f$lockfile

return$retval

}

restart(){

#configtest||return$?

stop

sleep1

start

}

reload(){

#configtest||return$?

echo-n$"Reloading$prog:"

killproc$nginx-HUP

RETVAL=$?

echo

}

force_reload(){

restart

}

configtest(){

$nginx-t-c$NGINX_CONF_FILE

}

rh_status(){

status$prog

}

rh_status_q(){

rh_status>/dev/null2>&1

}

case"$1"in

start)

rh_status_q&&exit0

$1

;;

stop)

rh_status_q||exit0

$1

;;

restart|configtest)

$1

;;

reload)

rh_status_q||exit7

$1

;;

force-reload)

force_reload

;;

status)

rh_status

;;

condrestart|try-restart)

rh_status_q||exit0

;;

*)

echo$"Usage:$0{start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"

exit2

esac

############################################################

:wq!#保存退出

chmod775/etc/rc.d/init.d/nginx#赋予文件执行权限

chkconfignginxon#设置开机启动

/etc/rc.d/init.d/nginxrestart#重启程序

在浏览器中打开服务器IP地址,会看到下面的界面,说明Nginx安装成功。


附./configure检测配置结果

 
#
Configurationsummary
+usingPCRElibrary:/usr/local/src/pcre-8.40
+usingOpenSSLlibrary:/usr/local/src/openssl-1.1.0e
+md5:usingOpenSSLlibrary
+sha1:usingOpenSSLlibrary
+usingzliblibrary:/usr/local/src/zlib-1.2.11
+jemalloclibraryisdisabled#这个是我之前没有添加jemalloc内存优化的配置,这只是范例参考

nginxpathprefix:"/usr/local/nginx"
nginxbinaryfile:"/usr/local/nginx/sbin/nginx"
nginxconfigurationprefix:"/usr/local/nginx/conf"
nginxconfigurationfile:"/usr/local/nginx/conf/nginx.conf"
nginxpidfile:"/usr/local/nginx/logs/nginx.pid"
nginxerrorlogfile:"/usr/local/nginx/logs/error.log"
nginxhttpaccesslogfile:"/usr/local/nginx/logs/access.log"
nginxhttpclientrequestbodytemporaryfiles:"client_body_temp"
nginxdsomodulepath:"/usr/local/nginx/modules/"
nginxhttpproxytemporaryfiles:"proxy_temp"
nginxhttpfastcgitemporaryfiles:"fastcgi_temp"
nginxhttpuwsgitemporaryfiles:"uwsgi_temp"
nginxhttpscgitemporaryfiles:"scgi_temp"



扩展阅读:


Nginx配置txt、pdf、doc、xls等文件直接下载的方法


在nginx配置文件中添加以下代码


location / {


if ($request_filename ~* ^.*?\.(txt|pdf|doc|xls)$){


add_header Content-Disposition: 'attachment;';


}


}


参考:

http://www.osyunwei.com/archives/10057.html

http://blog.csdn.net/elong490/article/details/54913193

相关文章

linux下开机自启: 在/etc/init.d目录下新建文件elasticsear...
1、因为在centos7中/etc/rc.d/rc.local的权限被降低了,所以...
最简单的查看方法可以使用ls -ll、ls-lh命令进行查看,当使用...
ASP.NET Core应用程序发布linux在shell中运行是正常的。可一...
设置时区(CentOS 7) 先执行命令timedatectl status|grep &...
vim /etc/sysconfig/network-scripts/ifcfg-eth0 B...