linux安装nginx脚本,Linux下编译安装Nginx服务器并手动编写自动化运行脚本

红帽系列的 Linux软件管理分为三类:1. rpm 安装软件。2. yum 安装软件。3. 源码包编译安装。前面两种会在相关专题给出详细讲解。源码包的编译安装是非常关键的,我们知道linux的相关版本非常多,相关的编译器,解释器也有很多,很多还有最小系统,嵌入式系统等等。同一功能的软件如果只有编译好的软件包,在其它Linux的平台上,可能并不能正常安装运行,在此情况下,源码包编译安装出现了。所以本文的重点是以nginx为例,给出源码包编译安装的详细过程,同时带你手工编写自动化运行脚本。

可以看一下:长下面的这样子:

24fabe3ef9e73a31fb4d513442135ff7.png

一、编译安装nginx源码包。

1. 用xshell将下载的nginx源码包放到/root目录下面。当然你虚拟机可以上网,在虚拟机中用wget下载也是可以的。建议不要这样做,因为虚拟机上网一般比较慢。

8a2a5c525a732ffc2674a25ae77d8c7e.png

2.安装依赖的软件包工具 zlib-devel  pcre-devel,这里用yum安装这两个包。

rpm -qa | grep  zlib-devel

rpm -qa | grep  pcre-devel    #检查这两个包是否已经安装了。

这里用yum 安装这两个软件包,yum安装非常好的一点就是,你只要将包名知道就可以了,不需要包的版本信息及依赖包,而rpm安装,需要包的全名,包括版本信息,后缀名还需要自己安装先关的依赖包等,不是很方便。

yum install zlib-devel # yum 安装这个软件包。当然了,后面可以带上-y,不需要最后确认安装。

yum install pcre-devel -y

a0b966c4b9ffff466d8a6802bfbd45af.png

4b9572cf20614663a39993ba556fc712.png

e088cb632660e649d7e68347cc1127dd.png

3. 指定nginx的运行用户。

useradd -s /sbin/nologin -M nginx

74ec767e53375733034d94d23c71dc91.png

useradd 添加用户。

-s /sbin/nologin 指定用户运行的shell。

-M  不再home目录下创建该用户的目录。

4a7e3dfc834082af65b25e31c5b6e2a7.png

4. 解包,配置,编译,安装nginx

解包:tar zxf nginx-1.11.2.tar.gz -C /usr/src

配置:./configure --prefix=/usr/local/nginx --user=nginx --group=nginx

11037657ef613f3640682c0699976340.png

edb8f61a81b5ea74ecd199b1f84a6cb4.png

编译: make -j 4

53465b17e41ee4e414a0b96a5464b352.png

安装:make install

319509f0557d5e56a78acee0a4fd1dca.png

73bf8ec0f2ccd9676d51fe26eca06c26.png

二、编写nginx启动脚本:

1. 系统的脚本服务,一般放在这个目录下面:/etc/init.d中,我们也放到这里。

2. 编写nginx启动的脚本。

vim nginx 在文件nginx中编写如下脚本:

# description: nginx-server

nginx=/usr/local/nginx/sbin/nginxcase "$1" instart)

netstat-anlpt | grepnginxif[ $? -eq 0]then

echo "the nginx-server is already running"

else

echo "ther nginx-server is starting to run"$nginxfi;;

stop)

netstat-anlpt | grepnginxif[ $? -eq 0]then$nginx-s stopif [ $? -eq 0]then

echo "the nginx-server is stopped"

else

echo "failed to stop the nginx-server"

fi

else

echo "the nginx-server has stopped you needn't to stop it"

fi;;

restart)

$nginx-s reloadif[ $? -eq 0]then

echo "the nginx-server is restarting"

else

echo "the nginx-server failed to restart"

fi;;

status)

netstat-anlpt | grepnginxif[ $? -eq 0]then

echo "the nginx-server is running"

else

echo "the nginx-server is not running ,please try again"

fi;;

status)

netstat-anlpt | grepnginxif[ $? -eq 0]then

echo "the nginx-server is running"

else

echo "the nginx-server is not running ,please try again"

fi;;*)echo "please enter { start|stop|status|restart}";;esac

990285ed74a6b7b281c3f9989ed6bce1.png

3faa817a45e12a67bfdba6eff6485e5b.png

61de0da2c2322b9cb034657892a0ac5d.png

37de782b9ce2f088884a64db8059706f.png

3. 给脚本添加权限,并将nginx服务添加到系统服务中:

给脚本添加权限:chmod +x nginx

将nginx服务添加到系统服务中: chkconfig  –add nginx

查看nginx的运行级别:        chkconfig  –list nginx

bb44e2d8b01783b1f8ba0e4b0bf144af.png

4. 启动脚本,进行测试:

786290af48f7a5ed4331114891223762.png

说明:有时候会出现这种错误:

cdd030e1ec61f6f9170a4d02ebd17fc4.png

上面的报个小错,当restart时,用lsof –i:80检查一下:发现是刚才的nginx在占用着端口,说明restart中实现该功能的函数有点弱:可以考虑用stop 和 start来替换掉。

7be401185ae1651d377146ef66d18e08.png

Nginx 的详细介绍:请点这里

Nginx 的下载地址:请点这里

0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值