hi-nginx-1.3.4編譯安裝

zmark發表於2018-03-22

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,找到後,把以下部分:

1 ac_fn_c_check_decl "$LINENO" "isfinite" "ac_cv_have_decl_isfinite" "#include <math.h>
2 "
3 if test "x$ac_cv_have_decl_isfinite" = xyes; then :
4   ac_have_decl=1
5 else
6   ac_have_decl=0
7 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=0
else
  ac_have_decl=0
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時開啟哪種語言,預設是全部開啟的:

1  --enable-http-hi-cpp=YES                            
2  --enable-http-hi-python=YES                         
3  --enable-http-hi-lua=YES                            
4  --enable-http-hi-java=YES                           
5  --enable-http-hi-php=YES                            
6  --add-module=ngx_http_hi_module                     

不需要某種語言(除cpp外),就把某項設定為NO。hi-nginx安裝包下有個install_demo.sh檔案,可以按自己的需要修改後直接執行使用。然後make && sudo make install 即可。

 

編譯安裝後記得systemctl daemon-reload 和systemctl restart nginx。

 


相關文章