Skip to content

Instantly share code, notes, and snippets.

@kenshin17
Last active September 11, 2019 11:22
Show Gist options
  • Save kenshin17/cc256b58415ab114b5f85fd8d300f842 to your computer and use it in GitHub Desktop.
Save kenshin17/cc256b58415ab114b5f85fd8d300f842 to your computer and use it in GitHub Desktop.
Compile HAProxy 1.9.6 with Lua 5.3.5 and OpenSSL 1.1.0h and multithreading support on Ubuntu 18.04.2 LTS
#!/bin/bash
# Author : kenshin17
# OS : Ubuntu 18.04.2 LTS
# LastUpdate : 11:55 2019.05.13
# Description : Compile HAProxy 1.9.6 with Lua 5.3.5 and OpenSSL 1.1.0h and multithreading support on Ubuntu 18.04.2 LTS
###########################################
export LC_CTYPE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
SETUP_DIR_WORKSPACE="/opt/setup"
COMPILE_DIR_WORKSPACE="/opt/build"
mkdir -p $SETUP_DIR_WORKSPACE
## Install dependencies package
echo "####################################################################"
echo "# Install dependencies package #"
echo "####################################################################"
sudo apt-get install -y wget build-essential zlib1g-dev libreadline-dev
## Complie lua
echo "####################################################################"
echo "# Complie lua #"
echo "####################################################################"
# sudo apt install build-essential libreadline-dev
# yum groupinstall "Development Tools" readline
cd $SETUP_DIR_WORKSPACE
rm -rf lua-5.3.5.tar.gz
rm -rf lua-5.3.5
wget http://www.lua.org/ftp/lua-5.3.5.tar.gz
tar -xvf lua-5.3.5.tar.gz
cd lua-5.3.5
make linux
mkdir -p $COMPILE_DIR_WORKSPACE/lua-5.3.5
make INSTALL_TOP=$COMPILE_DIR_WORKSPACE/lua-5.3.5 install
## Complie OpenSSL
echo "####################################################################"
echo "# Complie OpenSSL #"
echo "####################################################################"
cd $SETUP_DIR_WORKSPACE
rm -rf openssl-1.1.0h.tar.gz
rm -rf openssl-1.1.0h
wget https://www.openssl.org/source/old/1.1.0/openssl-1.1.0h.tar.gz
tar -xvf openssl-1.1.0h.tar.gz
cd openssl-1.1.0h
./config -Wl,--enable-new-dtags,-rpath,'$(LIBRPATH)' --prefix=$COMPILE_DIR_WORKSPACE/openssl-1.1.0h --openssldir=$COMPILE_DIR_WORKSPACE/openssl-1.1.0h
make
make install
## Compile haproxy
echo "####################################################################"
echo "# Complie HAProxy #"
echo "####################################################################"
useradd haproxy -u haproxy &> /dev/null || useradd -s /usr/sbin/nologin -r haproxy
cd $BASE_WORKSPACE
rm -rf haproxy-1.9.6.tar.gz
rm -rf haproxy-1.9.6
mkdir -p $COMPILE_DIR_WORKSPACE/haproxy-1.9.6
mkdir -p /var/lib/haproxy/
wget http://www.haproxy.org/download/1.9/src/haproxy-1.9.6.tar.gz
tar -xvf haproxy-1.9.6.tar.gz
cd haproxy-1.9.6
sudo make TARGET=linux2628 \
USE_OPENSSL=1 \
USE_DL=1 \
USE_LUA=1 \
USE_THREAD=1 \
LUA_LIB=$COMPILE_DIR_WORKSPACE/lua-5.3.5/lib \
LUA_INC=$COMPILE_DIR_WORKSPACE/lua-5.3.5/include \
SSL_INC=$COMPILE_DIR_WORKSPACE/openssl-1.1.0h/include \
SSL_LIB=$COMPILE_DIR_WORKSPACE/openssl-1.1.0h/lib
sudo make PREFIX=$COMPILE_DIR_WORKSPACE/haproxy-1.9.6 install
export LD_LIBRARY_PATH=$COMPILE_DIR_WORKSPACE/openssl-1.1.0h/lib
echo "####################################################################"
echo "# Check Complie HAProxy #"
echo "####################################################################"
$COMPILE_DIR_WORKSPACE/haproxy-1.9.6/sbin/haproxy -vv
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment