• CentOS 7.2编译安装Tengine


    CentOS需使用7.*版本, 8.*版本因 OPENSSL_TLS_SECURITY_LEVEL=2 的问题暂没有很好的解决办法;

    配置firewalld,iptables,关闭SELINUX
    systemctl disable firewalld

    1、安装必要的编译环境好

    由于Tengine安装需要使用源代码自行编译,所以在安装前需要安装必要的编译工具:

    yum -y update
    yum -y install gcc gcc-c++ bzip2 perl curl curl-devel expat-devel gettext-devel libxml2 libxml2-devel libjpeg-devel libpng-devel freetype-devel libmcrypt-devel autoconf openssl openssl-devel

    yum -y install epel-release  //扩展包更新包
    yum -y update //更新yum源
    yum -y install libmcrypt libmcrypt-devel mcrypt mhash
     
    ###wget下载必要软件
    cd /mnt/wget
    wget https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz
    wget http://zlib.net/zlib-1.2.11.tar.gz
    wget https://github.com/jemalloc/jemalloc/releases/download/5.2.1/jemalloc-5.2.1.tar.bz2
    wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz

    wget http://tengine.taobao.org/download/tengine-2.3.2.tar.gz
     
     

    2、安装需要的组件

    A、PCRE

    PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。nginx rewrite依赖于PCRE库,所以在安装Tengine前一定要先安装PCRE

    cd /mnt/wget  && tar zxvf pcre-8.43.tar.gz && cd pcre-8.43 && ./configure --prefix=/usr/local/pcre && make && make install
     

    B、Zlib

    Zlib是提供资料压缩之用的函式库,当Tengine想启用GZIP压缩的时候就需要使用到Zlib(http://www.zlib.net/)。

    cd /mnt/wget && tar zxvf zlib-1.2.11.tar.gz && cd zlib-1.2.11 && ./configure --prefix=/usr/local/zlib && make && make install
     

    C、jemalloc

    jemalloc(https://github.com/jemalloc/jemalloc/releases/)是一个更好的内存管理工具,使用jemalloc可以更好的优化Tengine的内存管理。

    cd /mnt/wget && tar xvf jemalloc-5.2.1.tar.bz2 && cd jemalloc-5.2.1 && ./configure --prefix=/usr/local/jemalloc && make && make install
     

    D、OpenSSL

    OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。,安装OpenSSL(http://www.openssl.org/source/)主要是为了让tengine支持Https的访问请求。

    cd /mnt/wget && tar zxvf openssl-1.1.1g.tar.gz && cd openssl-1.1.1g && ./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl --libdir=lib shared zlib-dynamic -Wl,-R,'$(LIBRPATH)' -Wl,--enable-new-dtags
     
    (如果之前安装过,请执行 make distclean )
    make && make install
     
    cp /etc/pki/tls/cert.pem /usr/local/openssl/cert.pem
     
    使用新版OpenSSL
    mv /usr/bin/openssl /usr/bin/openssl.bak
    mv /usr/include/openssl /usr/include/openssl.bak
    ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
    ln -s /usr/local/openssl/include/openssl /usr/include/openssl
    ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
    ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
     

    3、安装Tengine

    在主要核心的组件安装完毕以后就可以安装Tegine了,最新版本的Tegine可从官网(http://tengine.taobao.org/)获取。
    在编译安装前还需要做的一件事是添加一个专门的用户来执行Tengine。当然你也可以用root(不建议)。

    groupadd www && useradd -s /sbin/nologin -g www www

    接下来才是进行安装:

    cd /mnt/wget && tar -zxvf tengine-2.3.2.tar.gz && cd tengine-2.3.2

    ./configure --prefix=/usr/local/nginx
    --user=www
    --group=www
    --with-pcre=/mnt/wget/pcre-8.43
    --with-openssl=/mnt/wget/openssl-1.1.1g
    --with-jemalloc=/mnt/wget/jemalloc-5.2.1
    --with-zlib=/mnt/wget/zlib-1.2.11
    --with-http_gzip_static_module
    --with-http_realip_module
    --with-http_stub_status_module
    --with-http_ssl_module
    --with-http_v2_module

    make && make install

    注意配置的时候 –with-pcre 、–with-openssl、–with-jemalloc、–with-zlib的路径为源文件的路径。

    4、配置Tengine,设置tengine自动启动

    系统用户登录系统后启动的服务 的目录 /usr/lib/systemd/system
    如需要开机没有登陆情况下就能运行的程序在系统目录内/lib/systemd/system

    我希望系统开机就启动目录,所以我把文件放在系统目录内。

    cd /lib/systemd/system
    vi nginx.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
    

     
    修改文件权限   chmod 745 nginx.service   
    设置为开机启动  systemctl enable nginx.service

    启动nginx服务    systemctl start nginx.service
    设置开机自启动   systemctl enable nginx.service
    停止开机自启动   systemctl disable nginx.service
    查看服务当前状态 systemctl status nginx.service
    重新启动服务     systemctl restart nginx.service

    查看所有已启动的服务  systemctl list-units --type=service

     

    打开nscd服务,缓存dns,提高RDS响应
    systemctl start nscd.service
    systemctl enable nscd.service

    vi /etc/hosts     //注释掉下面一行
    #::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    禁止系统检查邮件
    echo "unset MAILCHECK" >> /etc/profile
    echo '/usr/local/lib64
    /usr/local/lib
    /usr/lib
    /usr/lib64
    /usr/local/mysql/lib' >> /etc/ld.so.conf && ldconfig

    姊妹篇:

    编译安装PHP7: https://www.cnblogs.com/doseoer/p/5350944.html

    日志:

    Tengine-Nginx: /usr/local/nginx/logs/error.log notice;
    PHP-fpm: /var/log/php-fpm/error.log
    PHP: /var/log/php/php-error.log

  • 相关阅读:
    批处理基础知识-IF
    在Windows 10 x64 编译ReactOS-0.4.5源码并在VMare中运行
    复制20天以前指定的文件夹、子文件夹和子文件至指定目录
    bat(批处理)命令(tomcat 7.0.75 startup.bat 命令集)
    mycat
    mysql
    5种网络IO模型
    Linux常用命令
    mybatis多参数传递,延迟加载,缓存,注解开发
    事务,mybatis
  • 原文地址:https://www.cnblogs.com/doseoer/p/6257939.html
Copyright © 2020-2023  润新知