Shell 스 크 립 트 프로 그래 밍 - Nginx 자동화 설치
#!/bin/bash
# auth liheng
# date 2019-05-20
#
. /etc/init.d/functions
#
sys=`rpm -q centos-release|cut -d- -f3`
#
DATE="`date +%F' '%H:%M:%S`"
install_path="/opt/payment/soft/"
install_log_name="install_nginx.log"
install_log_path="/var/log/install_log/"
download_path="/usr/local/software/"
nginx="nginx-1.8.0"
zlib="zlib-1.2.11"
pcre="pcre-8.12"
openssl="openssl-1.0.1h"
nginx_url="http://nginx.org/download/${nginx}.tar.gz"
zlib_url="http://www.zlib.net/${zlib}.tar.gz"
pcre_url="https://datapacket.dl.sourceforge.net/project/pcre/pcre/8.12/${pcre}.tar.gz"
openssl_url="https://www.openssl.org/source/${openssl}.tar.gz"
#
common_func () {
output_msg " "
useradd -s /sbin/nologin nginx && yum install gcc-c++ -y > /dev/null 2>&1
}
# ( , , , )
output_msg () {
for msg in $*;do
action ${msg} /bin/true
done
}
# ,$1 ,$2 yum
check_yum_command () {
output_msg " :$1"
hash $1 >/dev/null 2>&1
if [ $? -eq 0 ];then
echo "${DATE} check command $1 " >> ${install_log_path}${install_log_name} && return 0
else
yum -y install $2 >/dev/null 2>&1
fi
}
# ,
check_dir () {
output_msg " "
for dirname in $*;do
[ -d ${dirname} ] || mkdir -p ${dirname} >/dev/null 2>&1
echo "${DATE} ${dirname} check success!" >> ${install_log_path}${install_log_name}
done
}
#
download_file () {
output_msg " "
mkdir -p ${download_path}
for file in $*;do
wget ${file} -O ${download_path}${file##*/} &> /dev/null
if [ $? -eq 0 ];then
echo "${DATE} ${file} download success!">>${install_log_path}${install_log_name}
else
echo "${DATE} ${file} download fail!">>${install_log_path}${install_log_name} && exit 1
fi
done
}
# , , 。
extract_file() {
output_msg " "
for file in $*;do
tar xf ${download_path}${file} -C ${install_path} && echo "${DATE} ${file} extrac success!,path is ${install_path}" >> ${install_log_path}${install_log_name} || echo "${DATE} ${file} extrac fail!,path is ${install_path}" >> ${install_log_path}${install_log_name}
done
}
install_func () {
output_msg " "
cd ${install_path}${nginx} && ./configure --prefix=${install_path}${nginx%%-*} --with-pcre=${install_path}${pcre} --with-http_stub_status_module --with-http_ssl_module --with-openssl=${install_path}${openssl} --with-zlib=${install_path}${zlib} --user=nginx --group=nginx && make && make install
if [ ${sys} -eq 7 ];then
cat >/lib/systemd/system/nginx.service <>${install_log_path}${install_log_name}
elif [ ${sys} -eq 6 ];then
cd ${install_path}nginx/sbin && ./nginx
echo "${DATE} ">>${install_log_path}${install_log_name}
else
echo "${DATE} ">>${install_log_path}${install_log_name}
fi
}
main () {
common_func
check_dir ${install_log_path} ${install_path} ${download_path}
check_yum_command wget wget
download_file ${nginx_url} ${pcre_url} ${zlib_url} ${openssl_url}
extract_file ${nginx}.tar.gz ${pcre}.tar.gz ${zlib}.tar.gz ${openssl}.tar.gz
install_func
}
main
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Shell alias 명령에 별칭을 설정하는 방법명령에 별명을 설정하면 명령의'작은 이름'으로 삼을 수 있지만, 이렇게 하는 것이 무슨 의미가 있습니까? 이때 별명이 작용할 수 있다.vim 명령의 별명을vi라고 정의하면 이후에 실행된vi 명령은 실제로vim 명령을...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.