紅帽系列的 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
3. 給腳本添加權限,並將nginx服務添加到系統服務中:
給腳本添加權限:chmod +x nginx
將nginx服務添加到系統服務中: chkconfig –add nginx
查看nginx的運行級別: chkconfig –list nginx
4. 啓動腳本,進行測試:
說明:有時候會出現這種錯誤:
上面的報個小錯,當restart時,用lsof –i:80檢查一下:發現是剛纔的nginx在佔用着端口,說明restart中實現該功能的函數有點弱:能夠考慮用stop 和 start來替換掉。
聲明:本文爲博主原創,轉載必須註明出處: