天天看点

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

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

<code>yum </code><code>groups</code> <code>install</code> <code>"Development Tools"</code> <code>-y</code>

<code>yum -y </code><code>install</code> <code>bzip2</code>

<code>wget -c </code><code>ftp</code><code>:</code><code>//ftp</code><code>.csx.cam.ac.uk</code><code>/pub/software/programming/pcre/pcre-8</code><code>.40.</code><code>tar</code><code>.gz</code>

<code>wget -c http:</code><code>//www</code><code>.openssl.org</code><code>/source/openssl-1</code><code>.0.2g.</code><code>tar</code><code>.gz</code>

<code>wget -c http:</code><code>//www</code><code>.zlib.net</code><code>/zlib-1</code><code>.2.11.</code><code>tar</code><code>.gz</code>

<code>wget -c http:</code><code>//tengine</code><code>.taobao.org</code><code>/download/tengine-2</code><code>.1.2.</code><code>tar</code><code>.gz</code>

<code>#wget http://www.canonware.com/download/jemalloc/jemalloc-3.6.0.tar.bz2</code>

<code>tar</code> <code>-zxf pcre-8.40.</code><code>tar</code><code>.gz -C </code><code>/usr/local/src/</code>

<code>tar</code> <code>-zxf openssl-1.0.2g.</code><code>tar</code><code>.gz -C </code><code>/usr/local/src/</code>

<code>tar</code> <code>-zxf zlib-1.2.11.</code><code>tar</code><code>.gz  -C </code><code>/usr/local/src/</code>

<code>tar</code> <code>-zxf tengine-2.1.2.</code><code>tar</code><code>.gz -C </code><code>/usr/local/src/</code>

<code>#tar jxvf jemalloc-3.6.0.tar.bz2 -C /usr/local/src/</code>

1、安装pcre

<code>mkdir</code> <code>/usr/local/pcre</code>

<code>cd</code> <code>/usr/local/src/pcre-8</code><code>.40</code>

<code>.</code><code>/configure</code> <code>--prefix=</code><code>/usr/local/pcre</code>

<code>make</code> <code>-j</code>

<code>make</code> <code>install</code>

2、安装openssl

<code>mkdir</code> <code>/usr/local/openssl</code>

<code>cd</code> <code>/usr/local/src/openssl-1</code><code>.0.2g/</code>

<code>.</code><code>/config</code> <code>--prefix=</code><code>/usr/local/openssl</code>

<code>make</code> <code>depend</code>

vi /etc/profile

<code>export</code> <code>PATH=$PATH:</code><code>/usr/local/openssl/bin</code>

<code>or</code>

<code>echo</code> <code>"export PATH=$PATH:/usr/local/openssl/bin"</code> <code>&gt;&gt; </code><code>/etc/profile</code>

:wq!

<code>source</code> <code>/etc/profile</code>

3、安装zlib

<code>mkdir</code> <code>/usr/local/zlib</code>

<code>cd</code> <code>/usr/local/src/zlib-1</code><code>.2.11</code>

<code>.</code><code>/configure</code> <code>--prefix=</code><code>/usr/local/zlib</code>

4、安装Nginx

<code>groupadd www</code>

<code>useradd</code> <code>-g www www -s </code><code>/bin/false</code>

<code>cd</code> <code>/usr/local/src/tengine-2</code><code>.1.2/</code>

<code>#开启jemalloc内存优化</code>

<code>.</code><code>/configure</code> <code>--prefix=</code><code>/usr/local/nginx</code> <code>--without-http_memcached_module --user=www --group=www --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-openssl=</code><code>/usr/local/src/openssl-1</code><code>.0.2g --with-zlib=</code><code>/usr/local/src/zlib-1</code><code>.2.11 --with-pcre=</code><code>/usr/local/src/pcre-8</code><code>.40 --with-jemalloc=</code><code>/usr/local/src/jemalloc-3</code><code>.6.0</code>

<code>make</code>

注意:--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、添加开机启动脚本

<code>/usr/local/nginx/sbin/nginx</code> <code>#启动Nginx</code>

<code>设置nginx开机启动</code>

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

<code>############################################################</code>

<code>#!/bin/sh</code>

<code>#</code>

<code># nginx - this script starts and stops the nginx daemon</code>

<code># chkconfig: - 85 15</code>

<code># description: Nginx is an HTTP(S) server, HTTP(S) reverse \</code>

<code># proxy and IMAP/POP3 proxy server</code>

<code># processname: nginx</code>

<code># config: /etc/nginx/nginx.conf</code>

<code># config: /usr/local/nginx/conf/nginx.conf</code>

<code># pidfile: /usr/local/nginx/logs/nginx.pid</code>

<code># Source function library.</code>

<code>. </code><code>/etc/rc</code><code>.d</code><code>/init</code><code>.d</code><code>/functions</code>

<code># Source networking configuration.</code>

<code>. </code><code>/etc/sysconfig/network</code>

<code># Check that networking is up.</code>

<code>[ </code><code>"$NETWORKING"</code> <code>= </code><code>"no"</code> <code>] &amp;&amp; </code><code>exit</code> <code>0</code>

<code>nginx=</code><code>"/usr/local/nginx/sbin/nginx"</code>

<code>prog=$(</code><code>basename</code> <code>$nginx)</code>

<code>NGINX_CONF_FILE=</code><code>"/usr/local/nginx/conf/nginx.conf"</code>

<code>[ -f </code><code>/etc/sysconfig/nginx</code> <code>] &amp;&amp; . </code><code>/etc/sysconfig/nginx</code>

<code>lockfile=</code><code>/var/lock/subsys/nginx</code>

<code>make_dirs() {</code>

<code># make required directories</code>

<code>user=`$nginx -V 2&gt;&amp;1 | </code><code>grep</code> <code>"configure arguments:"</code> <code>| </code><code>sed</code> <code>'s/[^*]*--user=\([^ ]*\).*/\1/g'</code> <code>-`</code>

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

<code>useradd</code> <code>-M -s </code><code>/bin/nologin</code> <code>$user</code>

<code>fi</code>

<code>options=`$nginx -V 2&gt;&amp;1 | </code><code>grep</code> <code>'configure arguments:'</code><code>`</code>

<code>for</code> <code>opt </code><code>in</code> <code>$options; </code><code>do</code>

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

<code>value=`</code><code>echo</code> <code>$opt | </code><code>cut</code> <code>-d </code><code>"="</code> <code>-f 2`</code>

<code>if</code> <code>[ ! -d </code><code>"$value"</code> <code>]; </code><code>then</code>

<code># echo "creating" $value</code>

<code>mkdir</code> <code>-p $value &amp;&amp; </code><code>chown</code> <code>-R $user $value</code>

<code>done</code>

<code>}</code>

<code>start() {</code>

<code>[ -x $nginx ] || </code><code>exit</code> <code>5</code>

<code>[ -f $NGINX_CONF_FILE ] || </code><code>exit</code> <code>6</code>

<code>make_dirs</code>

<code>echo</code> <code>-n $</code><code>"Starting $prog: "</code>

<code>daemon $nginx -c $NGINX_CONF_FILE</code>

<code>retval=$?</code>

<code>echo</code>

<code>[ $retval -</code><code>eq</code> <code>0 ] &amp;&amp; </code><code>touch</code> <code>$lockfile</code>

<code>return</code> <code>$retval</code>

<code>stop() {</code>

<code>echo</code> <code>-n $</code><code>"Stopping $prog: "</code>

<code>killproc $prog -QUIT</code>

<code>[ $retval -</code><code>eq</code> <code>0 ] &amp;&amp; </code><code>rm</code> <code>-f $lockfile</code>

<code>restart() {</code>

<code>#configtest || return $?</code>

<code>stop</code>

<code>sleep</code> <code>1</code>

<code>start</code>

<code>reload() {</code>

<code>echo</code> <code>-n $</code><code>"Reloading $prog: "</code>

<code>killproc $nginx -HUP</code>

<code>RETVAL=$?</code>

<code>force_reload() {</code>

<code>restart</code>

<code>configtest() {</code>

<code>$nginx -t -c $NGINX_CONF_FILE</code>

<code>rh_status() {</code>

<code>status $prog</code>

<code>rh_status_q() {</code>

<code>rh_status &gt;</code><code>/dev/null</code> <code>2&gt;&amp;1</code>

<code>case</code> <code>"$1"</code> <code>in</code>

<code>start)</code>

<code>rh_status_q &amp;&amp; </code><code>exit</code> <code>0</code>

<code>$1</code>

<code>;;</code>

<code>stop)</code>

<code>rh_status_q || </code><code>exit</code> <code>0</code>

<code>restart|configtest)</code>

<code>reload)</code>

<code>rh_status_q || </code><code>exit</code> <code>7</code>

<code>force-reload)</code>

<code>force_reload</code>

<code>status)</code>

<code>rh_status</code>

<code>condrestart|try-restart)</code>

<code>*)</code>

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

<code>exit</code> <code>2</code>

<code>esac</code>

<code>:wq! </code><code>#保存退出</code>

<code>chmod</code> <code>775 </code><code>/etc/rc</code><code>.d</code><code>/init</code><code>.d</code><code>/nginx</code> <code>#赋予文件执行权限</code>

<code>chkconfig nginx on </code><code>#设置开机启动</code>

<code>/etc/rc</code><code>.d</code><code>/init</code><code>.d</code><code>/nginx</code> <code>restart </code><code>#重启程序</code>

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

附./configure检测配置结果

<code>&lt;br data-filtered=</code><code>"filtered"</code><code>&gt;</code>

<code>Configuration summary</code>

<code>  </code><code>+ using PCRE library: </code><code>/usr/local/src/pcre-8</code><code>.40</code>

<code>  </code><code>+ using OpenSSL library: </code><code>/usr/local/src/openssl-1</code><code>.1.0e</code>

<code>  </code><code>+ md5: using OpenSSL library</code>

<code>  </code><code>+ sha1: using OpenSSL library</code>

<code>  </code><code>+ using zlib library: </code><code>/usr/local/src/zlib-1</code><code>.2.11</code>

<code>  </code><code>+ jemalloc library is disabled     </code><code>#这个是我之前没有添加jemalloc内存优化的配置,这只是范例参考</code>

<code>  </code><code>nginx path prefix: </code><code>"/usr/local/nginx"</code>

<code>  </code><code>nginx binary </code><code>file</code><code>: </code><code>"/usr/local/nginx/sbin/nginx"</code>

<code>  </code><code>nginx configuration prefix: </code><code>"/usr/local/nginx/conf"</code>

<code>  </code><code>nginx configuration </code><code>file</code><code>: </code><code>"/usr/local/nginx/conf/nginx.conf"</code>

<code>  </code><code>nginx pid </code><code>file</code><code>: </code><code>"/usr/local/nginx/logs/nginx.pid"</code>

<code>  </code><code>nginx error log </code><code>file</code><code>: </code><code>"/usr/local/nginx/logs/error.log"</code>

<code>  </code><code>nginx http access log </code><code>file</code><code>: </code><code>"/usr/local/nginx/logs/access.log"</code>

<code>  </code><code>nginx http client request body temporary files: </code><code>"client_body_temp"</code>

<code>  </code><code>nginx dso module path: </code><code>"/usr/local/nginx/modules/"</code>

<code>  </code><code>nginx http proxy temporary files: </code><code>"proxy_temp"</code>

<code>  </code><code>nginx http fastcgi temporary files: </code><code>"fastcgi_temp"</code>

<code>  </code><code>nginx http uwsgi temporary files: </code><code>"uwsgi_temp"</code>

<code>  </code><code>nginx http scgi temporary files: </code><code>"scgi_temp"</code>

扩展阅读:

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

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

location / {

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

add_header Content-Disposition: 'attachment;';

}

参考:

<a href="http://www.osyunwei.com/archives/10057.html" target="_blank">http://www.osyunwei.com/archives/10057.html</a>

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

本文转自 yanconggod 51CTO博客,原文链接:http://blog.51cto.com/yanconggod/1945117

继续阅读