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


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

 

准備工作:nginx源碼包,官網地址:http://nginx.org/en/download.html

 可以看一下:長下面的這樣子:

 

一、編譯安裝nginx源碼包。

1. 用xshell將下載的nginx源碼包放到/root目錄下面。當然你虛擬機可以上網,在虛擬機中用wget下載也是可以的。建議不要這樣做,因為虛擬機上網一般比較慢。

 

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 

 

  

  

 

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 

    

   

   

二、編寫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

 

 

         


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM