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. 【java学习笔记】线程

    1.线程的定义 ①继承Thread类,将执行的任务逻辑放到run方法中,调用start方法来开启线程 public class ThreadDemo { public static void main ...

  2. ubuntu 14.04 分辨率调整 -- xrandr命令

    问题描述: 自己在安装ubuntu-kylin 14.04 TLS系统成功后,在调整分辨率的时候(系统设置--显示)发现分辨率的选项只有1024x768以及800x600两个选项,而台式机的外接显示屏 ...

  3. error: No curses/termcap library found的解决办法

    mysql版本:5.1.30 已经不记得这次是第几次安装mysql了,遇到这个问题倒是第一次. 之前在tar,./configure,make,make install 经典四步时,从来没有想过其中的 ...

  4. php学习笔记upset函数。

    如果在函数中我们不希望再使用某个变量.可以使用unset()销毁函数, ②在php函数中,我们可以给某些参数赋一个默认初值. ③可以传一个默认的参数. ④php在传递变量的时候,默认是传递值传递,如果 ...

  5. Linux显示文件和目录的详细资料

    Linux显示文件和目录的详细资料 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ ls -l 总用量 56 -rw-r--r-- 1 youhaidong y ...

  6. GetBitmapFromScreen

    int GetBitmapFromScreen() { char *lpBuf; HBITMAP hBitmap,hOld ; HDC hDC,hcDC; BITMAP bb;BITMAPINFO b ...

  7. HTML5可以省略结束标记的元素

    HTML5可以省略结束标记的元素 1.dd 2.dt 3.li 4.p 5.optgroup 6.option 7.rt 8.rp 9.thread 10.tfoot 11.tr 12.td 13.t ...

  8. SPOJ D-QUERY

    以前主席树学  kungbin 最近看了网上的版本 终于发现和我以前学的线段树差不多的了 希望最近能够加强 #include<bits/stdc++.h> using namespace ...

  9. .Net之路,感谢对我深远影响的三位前辈

    为什么要写这篇文章?为什么创立这个站点? 本人大四,学习.Net三年有余,随着近期开始转向对.Net Core的关注,我开始了解到了张善友(www.csharpkit.com).腾飞(www.jess ...

  10. PyCharm运行报编码错误

    运行报如下错误: SyntaxError: Non-ASCII character '\xe8' in file /home/ubuntu/code/201803091253-text.py on l ...