hi-nginx既是 web 服务器,也是 application 服务器。它开源在https://github.com/webcpp/hi-nginx

它是NGINX的超集,因此与编译NGINX稍有不同。编译安装hi-nginx需要额外安装一些东西,具体取决于你希望hi-nginx支持哪些编程语言。

hi-nginx支持五种编程语言进行web应用开发,分别是c++,python,lua,php和java。其中,c++是基本的和必选的。

  1. c++语言,需要安装支持c++11的g++或者clang++,以及hiredis-devel。这个部分是必要的。
  2. python语言,需要安装boost-devel和python-devel
  3. lua语言,需要安装lua-devel5.1-5.3
  4. php语言,需要安装php7
  5. java语言,需要安装jdk10以下版本,openjdk也是可以的

具体来说,可以使用以下命令安装:

centos
sudo yum install gcc gcc-c++ make pcre-devel zlib-devel openssl-devel hiredis-devel python-devel boost-devel lua-devel
ubuntu
sudo apt-get install build-essential libpcre3-dev zlib1g-dev libssl-dev libhiredis-dev python-dev libboost-all-dev  liblua5.3-dev

不需要哪种语言,就把哪种语言的相关项目去掉。

php7的编译安装与平时有两点不同。第一,需要开启--enable-embed=shared选项。第二,在configure之前,需要稍微修改下configure文件。打开该文件,搜索ac_cv_have_decl_isfinite,找到后,把以下部分:

 ac_fn_c_check_decl "$LINENO" "isfinite" "ac_cv_have_decl_isfinite" "#include <math.h>
"
if test "x$ac_cv_have_decl_isfinite" = xyes; then :
ac_have_decl=
else
ac_have_decl=
fi

改成:

ac_fn_c_check_decl "$LINENO" "isfinite" "ac_cv_have_decl_isfinite" "#include <math.h>
"
if test "x$ac_cv_have_decl_isfinite" = xyes; then :
ac_have_decl=
else
ac_have_decl=
fi

然后./configure && make 即可。

jdk的安装,最简单的就是直接安装openjdk-devel。如果使用oracle jdk,也是一样的,只要版权在10以下一般都可以。关键是要把ldconfig配置好。对于java 9 ,就是

$JAVA_HOME/lib/
$JAVA_HOME/lib/server

对于java 9以下版本,就是

$JAVA_HOME/jre/lib/amd64/server

可以自己创建/etc/ld.so.conf.d/java.conf文件,把以上路径用真实路径填写进去,然后sudo ldconfig即可。

完成以上步骤后,就可以开始编译hi-nginx了。

需要何种语言就在configure时开启哪种语言,默认是全部开启的:

  --enable-http-hi-cpp=YES                            \
--enable-http-hi-python=YES \
--enable-http-hi-lua=YES \
--enable-http-hi-java=YES \
--enable-http-hi-php=YES \
--add-module=ngx_http_hi_module \

不需要某种语言(除cpp外),就把某项设置为NO。hi-nginx安装包下有个install_demo.sh文件,可以按自己的需要修改后直接运行使用。然后make && sudo make install 即可。

编译安装后记得systemctl daemon-reload 和systemctl restart nginx。

hi-nginx-1.3.4编译安装的更多相关文章

  1. 新安装和已安装nginx如何添加未编译安装模块/补丁

    新安装和已安装nginx如何添加未编译安装模块/补丁 --http://www.apelearn.com/bbs/forum.php?mod=viewthread&tid=10485& ...

  2. 安装成功的nginx如何添加未编译安装模块

    原已经安装好的nginx,现在需要添加一个未被编译安装的模块举例说明:安装第三方的ngx_cache_purge模块(用于清除指定URL的缓存)nginx的模块是需要重新编译nginx,而不是像apa ...

  3. nginx的下载、编译安装和启动

    一.nginx简介 nginx(“engine x”)是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器.nginx是由Igor Sysoev为俄罗斯访问量第二的R ...

  4. centos 7 下 nginx 1.10.3 编译安装的方法

    安装所需环境 Nginx 是 C语言 开发,建议在 Linux 上运行,当然,也可以安装 Windows 版本,本篇则使用 CentOS 7 作为安装环境. 一. gcc 安装安装 nginx 需要先 ...

  5. F-stack及其Nginx、redis的编译安装

    F-stack简介 F-stack粘合了dpdk.用户态协议栈和nginx.redis,弥补了dpdk没有协议栈的不足,并用nginx.redis提供了一个调用应用程序的接口. Quick Start ...

  6. 转:安装成功的nginx如何添加未编译安装模块

    原已经安装好的nginx,现在需要添加一个未被编译安装的模块 举例说明:安装第三方的ngx_cache_purge模块(用于清除指定URL的缓存) nginx的模块是需要重新编译nginx,而不是像a ...

  7. Nginx之解压编译安装-yellowcong

    安装前准备 对于nginx编译安装需要先安装编译 的工具,然后再安装nginx依赖 yum -y install gcc gcc-c++ autoconf automake make yum -y i ...

  8. 生产线上的Nginx如何添加未编译安装模块

    正在生产线上跑着web前端是nginx+tomcat,现在有这样一个需求,需要对网站的单品页面和列表页设置缓存,不同的页面设置不同的缓存,但是由于开始没有安装ngx_cache_purge这个模块,现 ...

  9. [nginx] 从源码编译安装NGINX

    nginx通过rpm包进行的安装和配置: [web][nginx] 初识nginx -- 使用nginx搭建https DPI解码测试环境 现在,要通过源码进行安装. 参考:https://nginx ...

  10. nginx各版本全自动编译安装脚本

    #!/bin/bash #作者:星云法师(头条号:西西图图---专注美食领域的研究) #环境:centos7,如果是其它的系统可以相应做调整.#--------选择安装方式,网络晚装还是本地安装--- ...

随机推荐

  1. php 变量原理讲解

    php 变量原理讲解 一.变量概念   所谓变量,是指在程序中其值可以变化的量. 程序是管理和处理数据的.在程序运行过程中,我们需要存贮这些数据,变量和常量就是用于保存程序运行时的数据的. 变量通常由 ...

  2. 一个简单的Springmvc应用开发例子

            SpringMVC应用的配置步骤:         1,将所有的jar包导入到lib文件夹下:             jar在spring框架包-->libs-->所有的 ...

  3. R+NLP︱text2vec包——四类文本挖掘相似性指标 RWMD、cosine、Jaccard 、Euclidean (三,相似距离)

    要学的东西太多,无笔记不能学~~ 欢迎关注公众号,一起分享学习笔记,记录每一颗"贝壳"~ --------------------------- 在之前的开篇提到了text2vec ...

  4. dojo中的dojox/grid/EnhancedGrid表格报错

    1.错误截图 2.错误出处 <body class="claro"> <div id="gridContainer"> <span ...

  5. 错误号:1364 错误信息:Field 'platId' doesn't have a default value

    1. 错误描述 错误号:1364 错误信息:Field 'platId' doesn't have a default value insert into `use`.`t_platform_scal ...

  6. PL/SQL 基础知识简介

    1.PL/SQL代码块 PL/SQL 代码块是指令的集合,支持所有的DML,NDS,DBMS_SQL,DDL. :DML 是数据操纵语言(Data Manipulation Language)包括,I ...

  7. 安装STS报错(二)

    安装STS报错 1.启动时报错 2.报错原因 3.处理办法

  8. card card card HDU - 6205

    As a fan of Doudizhu, WYJ likes collecting playing cards very much. One day, MJF takes a stack of ca ...

  9. Python Cookbook(第3版)中文版:15.14 传递Unicode字符串给C函数库

    15.14 传递Unicode字符串给C函数库¶ 问题¶ 你要写一个扩展模块,需要将一个Python字符串传递给C的某个库函数,但是这个函数不知道该怎么处理Unicode. 解决方案¶ 这里我们需要考 ...

  10. [Luogu3455][POI2007]ZAP-Queries

    BZOJ(权限题) Luogu 题目描述 Byteasar the Cryptographer works on breaking the code of BSA (Byteotian Securit ...