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. Android类似Periscope点赞效果

    原文   https://github.com/AlanCheen/PeriscopeLayout 主题 安卓开发 PeriscopeLayout A layout with animation li ...

  2. NLP+VS=>Image Caption︱自动生成图像标题技术论文+相关项目

    读聪明人的笔记,是不是也能变聪明呢? Image Caption是一个融合计算机视觉.自然语言处理和机器学习的综合问题,它类似于翻译一副图片为一段描述文字. Image Caption问题可以定义为二 ...

  3. Android项目中的换肤总结

    纵观现在各种Android app,其换肤需求可以归为 白天/黑夜主题切换(或者别的名字,通常2套),如同花顺/自选股/天天动听等,UI表现为一个switcher. 多种主题切换,通常为会员特权,如Q ...

  4. Srtuts2实现登录界面(不连接数据库)报错(三)

    二月 28, 2014 11:41:20 下午 org.apache.catalina.core.AprLifecycleListener init 严重: An incompatible versi ...

  5. Srtuts2实现登录界面(不连接数据库)报错(二)

    二月 28, 2014 11:37:29 下午 org.apache.catalina.core.AprLifecycleListener init 严重: An incompatible versi ...

  6. 个性化WinPE封装方法 ----最后实战“制作WinPE3.0图文教程”

    经过前几讲,主要目的就是准备一些"原材料",熟悉一些"命令",实际上是"战前演练准备".下面要进入"实战状态",成败在此 ...

  7. 图像处理------泛洪填充算法(Flood Fill Algorithm) 油漆桶功能

    泛洪填充算法(Flood Fill Algorithm) 泛洪填充算法又称洪水填充算法是在很多图形绘制软件中常用的填充算法,最熟悉不过就是 windows paint的油漆桶功能.算法的原理很简单,就 ...

  8. 从不同的角度分析Flex的优缺点

    从不同的角度分析Flex的优缺点 技术角度: (1)具备了RIA时代富客户端的优点(C/S+B/S) (2)支持多种服务器语言(JAVA..NET.PHP)及主流框架(Spring.Hibernate ...

  9. Ubuntu14.04下安装Flash Player

    Ubuntu14.04下安装Flash Player youhaidong@youhaidong:~$ sudo apt-get install flashplugin-nonfree [sudo] ...

  10. Qt keyPressEvent

    keyPressEvent是QWidget里面的函数,所以凡是继承自QWidget的类都可以通过实现这个函数来完成对按键事件的响应. 要让当前的widget能够响应按键事件,最先需要做的事情是,调用: ...