Hello , 我是恒。
由于有一个脚本网页的仓库,开发必不可少的是自动化安装脚本
该shell脚本是根据某篇文章的脚本改进优化后写出来的,增加了软链接创建
和系统服务注册
的功能。
同时我也书写了PostgreSQL
和Nvm
的脚本,请在脚本专栏阅读
快速上手
适用系统: Linux centos 7.x
(其他linux也行,改一下脚本里面的软件管理包就行)
开箱即用的一键安装脚本:curl -O https://heng1.oss-cn-beijing.aliyuncs.com/nginx_install_three.sh && bash nginx_install_three.sh
注意
- 安装目录是
/usr/local/nginx
- 脚本结束后记得运行命令
source /etc/profile
激活环境变量,最后使用nginx命令检查一下 - 如在香港等的服务器会无法ping到114.114.114.114导致中断,可自行修改脚本
脚本
#!/bin/bash# nginx安装包链接
nginx_url="http://nginx.org/download/nginx-1.18.0.tar.gz"
# 下载包存放路径
path="/tmp/"
# 安装路径
int_path="/usr/local/nginx"# 首先检查网络,114.114.114.114 是一个公共 DNS 服务器地址
ping -c 1 114.114.114.114 > /dev/null 2>&1
if [ $? -eq 0 ];thenecho "检测网络正常!"# 配置阿里源read -p "配置阿里源输入1,任意键跳过配置:" numbercase "$number" in1)echo "正在配置阿里源..."mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup > /dev/null 2>&1wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo > /dev/null 2>&1yum clean all > /dev/null 2>&1yum makecache > /dev/null 2>&1echo "阿里源配置已完成!";;*)echo "已跳过配置阿里源!"esac# 安装依赖包echo "正在安装依赖包..."yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel wget > /dev/null 2>&1if [ $? -eq 0 ];thenecho "依赖包安装已完成!"# 下载Nginx包echo "正在下载安装包和解压安装操作..."wget $nginx_url -P $path > /dev/null 2>&1# 创建文件夹,解压安装mkdir $int_path && cd $int_pathnginx_pack=`echo $nginx_url | awk -F '/' '{print $NF}'`tar -xf $path/$nginx_pack -C ./# 编译安装nginx_path=`echo $nginx_pack |awk -F '.' '{print $1"."$2"."$3}'`cd $nginx_path && ./configure > /dev/null 2>&1make > /dev/null 2>&1make install > /dev/null 2>&1echo "Nginx 安装已完成!路径为/usr/local/nginx"# 添加软链接echo "export PATH=\$PATH:/usr/local/nginx/sbin" >> /etc/profilesource /etc/profile# 将nginx注册为系统服务cat > /etc/systemd/system/nginx.service <<EOF
[Unit]
Description=The nginx HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT \$MAINPID
PrivateTmp=true[Install]
WantedBy=multi-user.target
EOF# 重新加载 systemd 配置sudo systemctl daemon-reloadecho -e "#####################################\n启动Nginx: nginx\n停止Nginx: nginx -s stop\n重载Nginx: nginx -s reload\n检查Nginx: nginx -t\n注意运行命令:source /etc/profile\n#####################################"elseecho "依赖包安装失败,请检查yum源或者网络问题!!!"exit 1fi
elseecho "检测网络连接异常,请检查网络再操作!"exit 1
fi
自行修改注意
- 在linux上修改脚本格式为Unix格式,使用
dos2unix
修改格式
sudo yum install dos2unix # 如果没有安装,先安装
dos2unix hello.sh
- 添加执行权限
chmod +x hello.sh