linux軟件管理之------編譯安裝nginx服務器並手動編寫自動化運行腳本

  紅帽系列的 linux軟件管理分爲三類:1. rpm 安裝軟件。2. yum 安裝軟件。3. 源碼包編譯安裝。前面兩種會在相關專題給出詳細講解。源碼包的編譯安裝是很是關鍵的,咱們知道linux的相關版本很是多,相關的編譯器,解釋器也有不少,不少還有最小系統,嵌入式系統等等。同一功能的軟件若是隻有編譯好的軟件包,在其它linux的平臺上,可能並不能正常安裝運行,在此狀況下,源碼包編譯安裝出現了。因此本文的重點是以nginx爲例,給出源碼包編譯安裝的詳細過程,同時帶你手工編寫自動化運行腳本。html

 

準備工做:nginx源碼包,官網地址:http://nginx.org/en/download.html
linux

 能夠看一下:長下面的這樣子:nginx

 

1、編譯安裝nginx源碼包。shell

1. 用xshell將下載的nginx源碼包放到/root目錄下面。固然你虛擬機能夠上網,在虛擬機中用wget下載也是能夠的。建議不要這樣作,由於虛擬機上網通常比較慢。vim

 

2. 安裝依賴的軟件包工具 zlib-devel  pcre-devel,這裏用yum安裝這兩個包。ide

 rpm -qa | grep  zlib-devel函數

 rpm -qa | grep  pcre-devel    #檢查這兩個包是否已經安裝了。工具

 這裏用yum 安裝這兩個軟件包,yum安裝很是好的一點就是,你只要將包名知道就能夠了,不須要包的版本信息及依賴包,而rpm安裝,須要包的全名,包括版本信息,後綴名還須要本身安裝先關的依賴包等,不是很方便。測試

 yum install zlib-devel # yum 安裝這個軟件包。固然了,後面能夠帶上-y,不須要最後確認安裝。spa

 yum install pcre-devel -y 

 

  

  

 

3. 指定nginx的運行用戶。

  useradd -s /sbin/nologin -M nginx

 

   useradd 添加用戶。

  -s /sbin/nologin 指定用戶運行的shell。

  -M  再也不home目錄下建立該用戶的目錄。

 

 4. 解包,配置,編譯,安裝nginx

 

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

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

   

     

    編譯: make -j 4 

   

    安裝:make install 

    

   

   

2、編寫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
View Code

 

     

    

   

  

 3. 給腳本添加權限,並將nginx服務添加到系統服務中:

  

  給腳本添加權限:chmod +x nginx

  將nginx服務添加到系統服務中: chkconfig  –add nginx

  查看nginx的運行級別:        chkconfig  –list nginx 

 

 4. 啓動腳本,進行測試:

 

說明:有時候會出現這種錯誤:

上面的報個小錯,當restart時,用lsof –i:80檢查一下:發現是剛纔的nginx在佔用着端口,說明restart中實現該功能的函數有點弱:能夠考慮用stop 和 start來替換掉。

 

  聲明:本文爲博主原創,轉載必須註明出處:

http://www.cnblogs.com/jasmine-Jobs/p/5847825.html

相關文章
相關標籤/搜索