CentOS 通过源码编译形式安装 Tengine

本篇简单说说在如何在 Linux 系统上通过源码编译的形式安装 Tengine,纯属笔记。

前一篇写了《CentOS 通过源码编译形式安装 Nginx》,其实 Tengine 是由淘宝网发起的 Web 服务器项目。它在 Nginx 的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。Tengine 的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验。它的最终目标是打造一个高效、稳定、安全、易用的 Web 平台。从 2011 年 12 月开始,Tengine 成为一个开源项目,Tengine 团队在积极地开发和维护着它。Tengine 团队的核心成员来自于淘宝、搜狗等互联网企业。Tengine 是社区合作的成果,我们欢迎大家参与其中,贡献自己的力量。

Tengine 官网路径:http://tengine.taobao.org/

部署环境

Linux 版本:centos6.9-x64

Tengine 版本:tengine-2.3.2.tar.gz

关闭 Linux 机器防火墙

第一步,上传安装包

上传 Tengine 安装包 tengine-2.3.2.tar.gz,这里上传到 /root 下。

第二步,解压安装包

对第一步上传的安装包进行解压并进入到解压目录,命令如下。

命令1:tar -zxvf tengine-2.3.2.tar.gz

命令2:cd tengine-2.3.2

第三步,检查安装依赖

这里计划把 Nginx 安装到 /usr/local 下,检查依赖命令如下。

./configure \
--prefix=/usr/local/tengine/ \
--error-log-path=/var/log/tengine/error.log \
--http-log-path=/var/log/tengine/access.log \
--pid-path=/var/run/tengine/tengine.pid \
--lock-path=/var/lock/tengine.lock \
--with-http_ssl_module \
--with-http_flv_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/tmp/tengine/client/ \
--http-proxy-temp-path=/var/tmp/tengine/proxy/ \
--http-fastcgi-temp-path=/var/tmp/tengine/fcgi/ \
--http-uwsgi-temp-path=/var/tmp/tengine/uwsgi \
--http-scgi-temp-path=/var/tmp/tengine/scgi \
--with-pcre

结果信息如下:

checking for OS
 + Linux 2.6.32-696.el6.x86_64 x86_64
checking for C compiler ... not found

./configure: error: C compiler cc is not found

说明缺少 C 编译环境,执行下面命令安装相关环境包。

命令:yum -y install gcc gcc-c++

再次执行检查依赖命令,结果如下:

[root@test242 nginx-1.19.6]# ./configure \
> --prefix=/usr/local/tengine/ \
> --error-log-path=/var/log/tengine/error.log \
> --http-log-path=/var/log/tengine/access.log \
> --pid-path=/var/run/tengine/tengine.pid \
> --lock-path=/var/lock/tengine.lock \
> --with-http_ssl_module \
> --with-http_flv_module \
> --with-http_stub_status_module \
> --with-http_gzip_static_module \
> --http-client-body-temp-path=/var/tmp/tengine/client/ \
> --http-proxy-temp-path=/var/tmp/tengine/proxy/ \
> --http-fastcgi-temp-path=/var/tmp/tengine/fcgi/ \
> --http-uwsgi-temp-path=/var/tmp/tengine/uwsgi \
> --http-scgi-temp-path=/var/tmp/tengine/scgi \
> --with-pcre
...

./configure: error: the HTTP rewrite module requires the PCRE library.
You can either disable the module by using --without-http_rewrite_module
option, or install the PCRE library into the system, or build the PCRE library
statically from the source with nginx by using --with-pcre=<path> option.

[root@test242 nginx-1.19.6]# 

第四步,安装 pcre

命令:yum -y install pcre-devel

再次执行检查依赖命令,结果如下:

[root@test242 tengine-2.3.2]# ./configure \
> --prefix=/usr/local/tengine/ \
> --error-log-path=/var/log/tengine/error.log \
> --http-log-path=/var/log/tengine/access.log \
> --pid-path=/var/run/tengine/tengine.pid \
> --lock-path=/var/lock/tengine.lock \
> --with-http_ssl_module \
> --with-http_flv_module \
> --with-http_stub_status_module \
> --with-http_gzip_static_module \
> --http-client-body-temp-path=/var/tmp/tengine/client/ \
> --http-proxy-temp-path=/var/tmp/tengine/proxy/ \
> --http-fastcgi-temp-path=/var/tmp/tengine/fcgi/ \
> --http-uwsgi-temp-path=/var/tmp/tengine/uwsgi \
> --http-scgi-temp-path=/var/tmp/tengine/scgi \
> --with-pcre
...

./configure: error: SSL modules require the OpenSSL library.
You can either do not enable the modules, or install the OpenSSL library
into the system, or build the OpenSSL library statically from the source
with nginx by using --with-openssl=<path> option.

[root@test242 tengine-2.3.2]#

第五步,安装 openssl

命令:yum -y install openssl-devel

再次执行检查依赖命令,可以看到不再缺少依赖。

第六步,编译

命令:make

第七步,安装

命令:make install

第八步,启动

进入 Tengine 的安装目录 /usr/local/tengine,并启动 Nginx 服务。

命令1:cd /usr/local/tengine/

命令2:./sbin/nginx

报错信息为:nginx: [emerg] mkdir() "/var/tmp/tengine/client/" failed (2: No such file or directory)

第九步,创建目录

按照报错要求创建目录

命令:mkdir -p /var/tmp/tengine/client

再次执行第8步命令2启动 Tengine。

第九步,测试

通过浏览器访问:http://机器IP:80 测试是否安装成功。

看到上面测试页,说明 Tengine 已安装成功。如果打不开上面页面,可能是机器的防火墙没关,先关闭防火墙再进行验证。

热门文章

编程学习 ·

javascript 实现所有浏览器异步加载的工具

javascript 实现所有浏览器异步加载的工具 //异步加载 实现 function loadScript(url, callback){ //新建一个script 元素 var script = document.createElement(‘script’); //再往script中添加类型 script.type=“text/javascript”; if(script.readyState){ //每当 rea…
编程学习 ·

『杭电1251』统计难题

Problem DescriptionIgnatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀).Input输入数据的第一部分是一张单词表,每行一个单词,单词的长度不超过10,它们代表的是老师…
编程学习 ·

JDBC

JDBC(Java DataBase Connectivity) JDBC 简介 Java 数据库连接技术。即用 Java 程序操作数据库的一套接口。是独立与 特定数据库(MySQL、SQLServer) 的管理系统,也就是无论使用的是什么类型的数据库都可以用 JDBC 去连接。 让 JDBC 去翻译底层数据库的各种指令,我们只需要使…
编程学习 ·

Android客户端调起地图定位不准,导航路线出现偏差,目的地坐标偏离

前言 APP调起地图导航出现偏差 是什么问题造成的呢 一:可能是模糊定位造成的 二:也有可能 改变了经纬度的数据 解决思路如下 先了解一下调起高德APP的各个参数是什么 百度地图 参数如下:参数名称 描述 是否必选 格式(示例)origin 起点名称或经纬度,或者可同时提供名称和经纬…
编程学习 ·

Matlab class文件 简单上手使用

1.简单的书写规范 一般通过软件(拓展)新建功能,可以选择新建一个脚本、函数或者是类。当然文件中以类的形式书写代码,保存后matlab将自动识别该文件为类。 当使用软件新建类后,新建的文件中包含了类文件的基础格式(我使用的软件是MATLAB R2014b): classdef Untitled3%U…
编程学习 ·

windows10系统-2-安装Nodejs及SocketIO

(1)双击node-v12.14.1-x64.msi CMD>npm --version查看npm的版本 CMD>npm -v (2)使用淘宝镜像的命令 CMD>npm install -g cnpm --registry=https://registry.npm.taobao.org CMD>npm list -g查看所有全局安装的模块 【全局安装所在路径C:\Users\user\AppData\Roamin…
编程学习 ·

Ubuntu编译安装postgreSQL 10.5

Ubuntu下编译安装postgreSQL 10.5 ubuntu 16.04 LTS系统 postgreSQL 10.5 安装包准备从PostgreSQL官网下载PostgreSQL的安装包安装过程解压源码包tar zxvf postgresql-10.5.tar.gz cd postgresql-10.5检查环境配置 #创建postgreSQL的安装目录 mkdir /usr/local/postgresql #检查…
编程学习 ·

ubuntu如何远程连接和控制RS的仪表

RS有一台矢量信号源仪表 SMBV100B。需要通过安装了ubuntu的pc机局域网传matlab波形文件并设置频点等。需要3个步骤:1,安装ArbToolbox,用于将matlab波形转换成RS信号源识别的波形文件;https://www.rohde-schwarz.com.cn/applications/r-s-arb-toolbox-application-note_5628…
编程学习 ·

Java数据结构--顺序栈

一、简介 1.1 概念栈:又称为堆栈,是限制在表的一端进行插入和删除的线性表。其限制是仅允许在表的一端进行插入和删除操作,不允许在其他任何位置进行插入、查找、删除等操作。 表中进行插入、删除操作的一端称为栈顶、栈顶保存的元素称为栈顶元素。相对的,表的另一端称为栈底…
编程学习 ·

linux监控网卡抓包

/usr/sbin/tcpdump -n -e -i eth0 tcp port 8090tcpdump 的抓包保存到文件的命令参数是-w xxx.cap 抓eth1的包 tcpdump -i eth1 -w /tmp/xxx.cap 抓 192.168.1.123的包 tcpdump -i eth1 host 192.168.1.123 -w /tmp/xxx.cap 抓192.168.1.123的80端口的包 tcpdump -i eth1 host …
编程学习 ·

创建第一个 Flink 项目(Java版)

一、运行环境介绍Flink执行环境主要分为本地环境和集群环境,本地环境主要为了方便用户编写和调试代码使用,而集群环境则被用于正式环境中,可以借助Hadoop Yarn、k8s 或 Mesos等不同的资源管理器部署自己的应用。环境依赖:【1】JDK环境:Flink核心模块均使用 Java开发,所以…
编程学习 ·

C++ 11 之 移动语义 左值引用 完美转发

C++ 11 的 移动语义,左值引用 ,完美转发 三部分相互关联。阅读 两本数的相关章节即可完全掌握。首先是,强烈推荐IBM XL编译器开发团队推出的《深入理解C++11》3.3章节,内容讲解到为,鞭辟入里,自成系统,开发编译器的人果然对语言的理解很到位。其次是,《Effective Mocer…
编程学习 ·

leetcode215. 数组中的第K个最大元素

目录方法一:暴力解法方法二:借助 partition 操作定位到最终排定以后索引为 len - k 的那个元素(特别注意:随机化切分元素)方法三:优先队列(默认是最大堆)在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同…
编程学习 ·

程序人生 - 西瓜霜能吃下去吗?

西瓜霜是可以吃下去的,但是会影响到临床的药效,临床常用的有西瓜霜和西瓜霜润喉片主要药理作用就是消肿止痛,清咽利嗓,多用于急慢性咽喉炎,扁桃体炎,口腔溃疡,口舌生疮等引起的咽喉疼痛,声音嘶哑,牙龈红肿。通常,主要是局部用药,这样才能够更好的发挥疗效,成年人一…
编程学习 ·

智慧环保监测管理系统架构详情分析

物联网和商务智能技术的迅速发展壮大,将传统式环境监测与物联网等新兴技术融合,完成更加高效统一的人机交互系统软件。 伴随着我国社会经济的快速发展壮大,目前的环境监测工作能力供给无法满足群众和环境管理不断提升的监测需求,这类供求关系的空缺变大迫切需要自主创新水、…
编程学习 ·

SpringBooot框架整合MyBatis框架

SpringBooot框架整合MyBatis框架 1.MyBatis框架概述 Mybatis是一个优秀的持久层框架,底层基于JDBC实现与数据库的交互。并在JDBC操作的基础上做了封装和优化,它借助灵活的SQL定制,参数及结果集的映射方式,更好的适应了当前互联网技术的发展 2.初始配置 2.1.在pom.xml文件中…
编程学习 ·

基于Common.Logging + Log4Net实现的日志管理

基于Common.Logging + Log4Net实现的日志管理</h1><div class="clear"></div><div class="postBody">前言Common.Logging 是Commons-Logging(apache最早提供的日志门面接口,提供了简单的日志实现以及日志解耦功能) 项目的.net版本…
编程学习 ·

利用python爬虫爬取斗鱼图片(简单详细)

关于 在一个安静的夜晚,我缓慢的打开了电脑,望着已经睡着的父母,我轻轻的把门关上,看着斗鱼颜值主播的魅力,我不尽感叹,要是每天都可以不需要那么麻烦的去看那该有多好! 于是我想起了最近刚学的爬虫,嘴角露出了迷之微笑。 开始 我原本以为我这样的菜鸟,如果想爬的话应该…
编程学习 ·

浅谈工厂模式

工厂模式 实现了创建者和调用者的分离。在创建一个对象时不向客户暴露内部细节,并提供一个创建对象的通用接口。 核心本质 实例化对象,用工厂方法代替new操作。 将选择实现类、创建对象统一管理和控制。从而将调用者跟我们的实现类解耦。 详细分类简单工厂模式:用来生产同一…