72 lines
2.8 KiB
Bash
72 lines
2.8 KiB
Bash
#!/bin/bash
|
|
|
|
HOMEDIRECTORY=~/nginx_scriptbox
|
|
|
|
rm -rf $HOMEDIRECTORY
|
|
curl -sSL https://raw.githubusercontent.com/minoplhy/scriptbox/main/nginx_build_script/packages.sh | bash
|
|
mkdir $HOMEDIRECTORY && cd $HOMEDIRECTORY
|
|
|
|
# Install Golang
|
|
##GO_VERSION=1.20.5
|
|
|
|
##unlink /usr/bin/go
|
|
##wget https://go.dev/dl/go$GO_VERSION.linux-amd64.tar.gz
|
|
##sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go$GO_VERSION.linux-amd64.tar.gz
|
|
##export PATH=$PATH:/usr/local/go/bin
|
|
##ln -s /usr/local/go/bin /usr/bin/go
|
|
|
|
hg clone -b default https://hg.nginx.org/nginx
|
|
##git clone --depth=1 https://github.com/google/boringssl $HOMEDIRECTORY/boringssl
|
|
##cd $HOMEDIRECTORY/boringssl
|
|
##mkdir $HOMEDIRECTORY/boringssl/build && cd $HOMEDIRECTORY/boringssl/build && cmake .. && make
|
|
|
|
# Libressl
|
|
git clone https://github.com/libressl/portable $HOMEDIRECTORY/libressl && cd $HOMEDIRECTORY/libressl
|
|
bash ./autogen.sh && ./configure
|
|
mkdir -p $HOMEDIRECTORY/libressl/build-ninja && cd $HOMEDIRECTORY/libressl/build-ninja
|
|
cmake -G"Ninja" ..
|
|
ninja
|
|
ninja test
|
|
|
|
# ModSecurity Part
|
|
git clone --depth=1 https://github.com/SpiderLabs/ModSecurity $HOMEDIRECTORY/ModSecurity
|
|
cd $HOMEDIRECTORY/ModSecurity
|
|
git submodule init
|
|
git submodule update
|
|
./build.sh
|
|
./configure
|
|
make
|
|
sudo make install
|
|
|
|
# Whoops! Openresty doesn't support QUIC yet!
|
|
# lua-nginx-module buildup part (Big Part)
|
|
#
|
|
## mkdir $HOMEDIRECTORY/nginx-lua && cd $HOMEDIRECTORY/nginx-lua
|
|
## mkdir -p /opt/nginx-lua-module/
|
|
## git clone https://github.com/openresty/lua-resty-core
|
|
## git clone https://github.com/openresty/lua-resty-lrucache
|
|
## git clone https://github.com/openresty/luajit2
|
|
##
|
|
## cd luajit2 && make install PREFIX=/opt/nginx-lua-module/luajit2 && cd ..
|
|
## cd lua-resty-core && make install PREFIX=/opt/nginx-lua-module/ && cd ..
|
|
## cd lua-resty-lrucache && make install PREFIX=/opt/nginx-lua-module/ && cd ..
|
|
## ##
|
|
## export LUAJIT_LIB=/opt/nginx-lua-module/luajit2/lib
|
|
## export LUAJIT_INC=/opt/nginx-lua-module/luajit2/include/luajit-2.1
|
|
|
|
# Build Nginx
|
|
|
|
mkdir $HOMEDIRECTORY/nginx/mosc && cd $HOMEDIRECTORY/nginx/mosc && curl -sSL https://raw.githubusercontent.com/minoplhy/scriptbox/main/nginx_build_script/modules.sh | bash && cd ..
|
|
curl -sSL https://raw.githubusercontent.com/minoplhy/scriptbox/main/nginx_build_script/configure.sh | bash && make
|
|
|
|
if [[ $Nginx_Install == "yes" ]]; then
|
|
mkdir -p /lib/nginx/ && mkdir -p /lib/nginx/modules
|
|
mkdir -p /etc/nginx && mkdir -p /etc/nginx/sites-enabled && mkdir -p /etc/nginx/modules-enabled
|
|
cp $HOMEDIRECTORY/nginx/objs/*.so /lib/nginx/modules
|
|
rm /usr/sbin/nginx
|
|
cp $HOMEDIRECTORY/nginx/objs/nginx /usr/sbin/nginx
|
|
curl -sSL https://raw.githubusercontent.com/minoplhy/scriptbox/main/nginx_build_script/modules.conf > modules.conf
|
|
cp modules.conf /etc/nginx/modules-enabled
|
|
else
|
|
echo "Nginx_Install variable isn't set/vaild. Your Nginx assets location is : '$HOMEDIRECTORY'/nginx/objs"
|
|
fi |