需求背景:
机房或者客户现场可能会出现无网络的情况,但是需要安装nginx到服务器,并且实现开机自启动
类似方式安装mysql可以查看本人另一篇文章,附上点击链接;
类似方式安装mongodb可以查看本人另一篇文章,附上点击链接;
类似方式安装JDK1.8可以查看本人另一篇文章,附上点击链接;
类似方式安装redis可以查看本人另一篇文章,附上点击链接;
实现思路:
下载需要的rpm包,通过rpm的安装方式进行安装,本人通过Vmware来模拟需求背景,真实情况也一样,可以通过U盘或者光盘达到上传安装包的效果。
第一步:
安装的nginx版本rpm-----------nginx-1.10.0-1.el7.ngx.x86_64.rpm;
下载地址:
https://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.10.0-1.el7.ngx.x86_64.rpm
(直接就能下载,不能的话就自己去找过一个安装包)
或者网盘下载:
链接:https://pan.baidu.com/s/1XxYK-yUB2kSO-pNcmBlcdQ
提取码:1030
第二步
脚本文件,我是直接把下载好的rpm包和脚本文件一起放在/root路径下面
第三步
nginx.sh文件内容
echo "+++++++++++ start nginx ++++++++++++++++"
rpm -ivh nginx-1.10.0-1.el7.ngx.x86_64.rpm
echo "+++++++++++ start config ++++++++++++++++"
nginx -c /etc/nginx/nginx.conf
echo "+++++++++++ nginx success !!!!!!!!!!++++++++++++++++"
#添加自启动
cp /root/nginxd /etc/nginx/
cp /root/nginx.service /lib/systemd/system/
chmod 754 /lib/systemd/system/nginx.service
systemctl enable nginx.service
echo "自启动添加成功"
systemctl start nginx.service
nginx.service (这个是自启动需要的脚本,这个脚本需要把他放到路径/lib/systemd/system/下,脚本里面已经写好了;!!!!尝试过通过/etc/rc.local下这个方法不行)
[Unit]
Description=nginx - high performance web server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/sbin/nginx
ExecReload=/usr/sbin/nginx -s reload
ExecStop=/usr/sbin/nginx -s stop
[Install]
WantedBy=multi-user.target
其他基本不用改,把ExecStart,ExecReload,ExecStop换成自己的就可以。rpm包安装的时候,默认的就是这样的,也可以不用改,要改的话可以(whereis xxx)这个命令搜索一下具体文件
nginxd这个文件提供了一些暂停,启动的方法,nginx.sh脚本里面已经写好了默认复制到安装nginx的位置,附上内容,仅供参考:文件头顶部的/etc/init.d/nginxd自己尝试过开机重启的时候不可用,故采用nginx.service方式
#!/bin/bash
# chkconfig: 2345 30 60
# description: Nginx is a http server or forward
[ -f /etc/init.d/nginxd ] && . /etc/init.d/nginxd
pidfile=/var/run/nginx.pid;
Start_Nginx(){
if [ -f $pidfile ];then
echo "Nginx is running"
else
nginx -c /etc/nginx/nginx.conf
/usr/sbin/nginx &>/dev/null
action "Nginx is Started" /bin/true
fi
}
Stop_Nginx(){
if [ -f $pidfile ];then
/usr/sbin/nginx -s stop &>/dev/null
action "Nginx is Stopped" /bin/true
else
echo "Nginx is already Stopped"
fi
}
Reload_Nginx(){
if [ -f $pidfile ];then
/usr/sbin/nginx -s reload &>/dev/null
action "Nginx is Reloaded" /bin/true
else
echo "Can't open $pidfile ,no such file or directory"
fi
}
case $1 in
start)
Start_Nginx
RETVAL=$?
;;
stop)
Stop_Nginx
RETVAL=$?
;;
restart)
Stop_Nginx
sleep 3
Start_Nginx
RETVAL=$?
;;
reload)
Reload_Nginx
RETVAL=$?
;;
*)
echo "USAGE: $0 {start|stop|reload|restart}"
exit 1
esac
exit $RETVAL
!!!!!!!!!!!!以上这些都好了的话,
1、切到/root路径下面 cd /root
2、执行命令:bash /root/nginx.sh 如下图(我已经安装过了,所以有些会显示already):
3、重启系统:reboot now
4、输入查看进程命令:ps aux|grep nginx;如下图
然后就可以看到成功了,有疑问欢迎留言,有问题欢迎大佬指出。