源碼包安裝和快捷的管理nginx,自定義命令管理服務
環境Red Hat Enterprise Linux Server release 7.0
安裝源碼包nginx-1.8.0.tar.gz放在/下
說明:nginx 是與 httpd 類似的 web 服務器軟件,使用源碼編譯的方式安裝該軟件,該軟件有幾個依賴包:gcc,zlib-devel,pcre-devel
一.新建一個腳本
vim /root/test.sh
二.編寫腳本內容
#!/bin/bash #腳本聲明使用哪種解釋器
yum -y install gcc pcre-devel openssl-devel #安裝依賴包
tar -xf /root/nginx-1.8.0.tar.gz #解壓源碼包到當前文件夾
cd /root/nginx-1.8.0 #進入目錄
./configure #對即將安裝的軟件進行配置
make #編譯成二進制文件
make install #安裝
執行腳本後校驗結果:
檢查/usr/local/nginx/目錄是否有安裝好的程序,在關閉 httpd 的情況下,執行如下命令啟動 nginx 服務:
# /usr/local/nginx/sbin/nginx
客戶端使用瀏覽器可以訪問到默認的網站頁面firefox 127.0.0.1
三.定義開啟服務的函數,,新建一個腳本
提示: 上面安裝的 nginx 軟件,可以使用如下命令管理服務:
//啟動服務,啟動服務後會自動產生/usr/local/nginx/logs/nginx.pid 文件
/usr/local/nginx/sbin/nginx -s stop //關閉服務,關閉服務後/usr/local/nginx/logs/nginx.pid 文件會被自動刪除
但該源碼裝的軟件不能使用 systemctl 管理,啟動,關閉,查看狀態,重啟比較麻煩,現在編寫一個啟動腳本,可以簡單快
捷的管理該軟件
vim /root/test1.sh
腳本內容
#!/bin/bash
PID=/usr/local/nginx/logs/nginx.pid
start(){
if [ -f
$PID ];then
echo "服務已經啟動"
else
/usr/local/nginx/sbin/nginx
fi
}
#定義關閉服務的函數
stop(){
if
[ ! -f $PID ];thenecho "該服務已經關閉"
else
/usr/local/nginx/sbin/nginx -s stop
fi
}
#定義查看狀態的函數
status(){
if [ -f
$PID ];then
echo "該服務已啟動"
else
echo "該服務已經關閉"
fi
}
#定義主代碼,判斷用戶的位置參數,根據用戶的不同參數,執行不同的函數代碼
case $1 in
start)
start;;
stop)
stop;;
restart)
stopstart;;
status)
status;;
*)
echo "用法$0 [start|stop|restart|status] "
Esac
四.驗證腳本:
/root/test1.sh start
/root/test1.sh stop
/root/test1.sh restart
/root/test1.sh status
源碼包安裝和快捷的管理nginx,自定義命令管理服務