阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

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

157次阅读
没有评论

共计 2916 个字符,预计需要花费 8 分钟才能阅读完成。

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

准备工作:nginx 源码包,官网地址:http://nginx.org/en/download.html

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

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

一、编译安装 nginx 源码包。

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

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

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 

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

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

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

3. 指定 nginx 的运行用户。

useradd -s /sbin/nologin -M nginx

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

   useradd 添加用户。

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

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

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

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

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

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

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

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

  编译:make -j 4 

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

  安装:make install 

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

   

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

二、编写 nginx 启动脚本:

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

2. 编写 nginx 启动的脚本。

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

# description: nginx-server

nginx=/usr/local/nginx/sbin/nginx
case "$1" in
        start)
                netstat -anlpt | grep nginx
            if
                [$? -eq 0 ]
             then
                echo " the nginx-server is already running"
            else
                echo " ther nginx-server is starting to run"
                $nginx
            fi
         ;;

       stop)
              netstat -anlpt | grep nginx
                if 
                [$? -eq 0 ]
              then
                   $nginx -s stop
                   if [$? -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 reload
             if 
                 [$? -eq 0 ]
               then
                  echo "the nginx-server is restarting "
              else
                  echo " the nginx-server failed to restart"
             fi
         ;;

        status)
                   netstat -anlpt | grep nginx
             if 
                 [$? -eq 0 ]
               then
                   echo " the nginx-server is running "
            else
                   echo " the nginx-server is not running ,please try again" 
             fi
       ;;

        status)
                   netstat -anlpt | grep nginx
             if 
                 [$? -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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

CentOS 7 下 Nginx 服务器的安装配置  http://www.linuxidc.com/Linux/2017-04/142986.htm

CentOS 上安装 Nginx 服务器实现虚拟主机和域名重定向  http://www.linuxidc.com/Linux/2017-04/142642.htm

CentOS 6.8 安装 LNMP 环境(Linux+Nginx+MySQL+PHP)http://www.linuxidc.com/Linux/2017-04/142880.htm

Linux 下安装 PHP 环境并配置 Nginx 支持 php-fpm 模块  http://www.linuxidc.com/Linux/2017-05/144333.htm

Nginx 服务的 SSL 认证和 htpasswd 认证  http://www.linuxidc.com/Linux/2017-04/142478.htm

Linux 中安装配置 Nginx 及参数详解  http://www.linuxidc.com/Linux/2017-05/143853.htm

Nginx 日志过滤 使用 ngx_log_if 不记录特定日志 http://www.linuxidc.com/Linux/2014-07/104686.htm

CentOS 7.2 下 Nginx+PHP+MySQL+Memcache 缓存服务器安装配置  http://www.linuxidc.com/Linux/2017-03/142168.htm

CentOS6.9 编译安装 Nginx1.4.7  http://www.linuxidc.com/Linux/2017-06/144473.htm

Nginx 的详细介绍 :请点这里
Nginx 的下载地址 :请点这里

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-06/144903.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计2916字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中