開發與維運

Linux centos下編譯安裝Lnmp shell腳本

#!/bin/bash
repo="/etc/yum.repos.d/epel-7.repo"
if [ ! -e $repo ]; then                 # -e 判斷文件存在;參考:Shell if 條件判斷文件或目錄
yum install -y wget
cd /etc/yum.repos.d/
mkdir bak
mv * bak
wget http://mirrors.aliyun.com/repo/Centos-7.repo
wget http://mirrors.aliyun.com/repo/epel-7.repo
                                                        # 移動兩個文件到 目錄
yum clean all                                   # 清除原有緩存
yum makecache                           # 生成新的緩存
                                                        # make cache [meɪk]  [kaʃ]  製作 緩存{ka xi}
yum  list                                       # 校驗yum
cd
else 
echo "yum已經切換"
fi
aznginx(){
lsnginx=(`find /opt -name "nginx.conf" | sed "s/ //g"`)         # shell 小括號屬性是 定義數組變量 lsnginx   它的值是一條命令的執行結果
echo "
nginx 配置文件總個數為:${#lsnginx[*]}
列出 nginx 配置文件"    ${lsnginx[*]}                                   # [*]  星號列出所有元素, 星號改成1 為指定角標1,含義為第二個元素,默認從0開始
if [ ${#lsnginx[*]} -lt 1 ]                                                             # -lt 小於; $ 為空,! 非運算; $? 判斷上一條命令執行狀態,0正常;  參考:linux shell $$,$! 等的特殊用法
then
echo "配置文件為空,正在安裝nginx"

#wget http://nginx.org/download/nginx-1.18.0.tar.gz
wget work.eisc.cn/ruanjian/rpm/lnmp/nginx-1.18.0.tar.gz
tar zxf nginx-1.18.0.tar.gz
cd nginx-1.18.0
yum install gcc gcc-c++ glibc -y
yum install pcre-devel -y
yum install zlib-devel -y
yum install openssl-devel -y
#######  nginx編譯參數解析  僅瞭解,不執行#######
:<<!                                                    # 多行註釋
–prefix                                                 #指定nginx安裝目錄,默認在/usr/local/nginx
–pid-path                                       #pid問件位置,默認在logs目錄
–lock-path                                      #lock問件位置,默認在logs目錄
–with-http_ssl_module                   #開啟HTTP SSL模塊,以支持HTTPS請求。
–with-http_dav_module                   #開啟WebDAV擴展動作模塊,可為文件和目錄指定權限
–with-http_flv_module                   #支持對FLV文件的拖動播放
–with-http_realip_module                #支持顯示真實來源IP地址
–with-http_gzip_static_module   #預壓縮文件傳前檢查,防止文件被重複壓縮
–with-http_stub_status_module   #取得一些nginx的運行狀態
–with-mail                                      #允許POP3/IMAP4/SMTP代理模塊
–with-mail_ssl_module                   #允許POP3/IMAP/SMTP可以使用SSL/TLS
–with-pcre=../pcre-8.11                         #注意是未安裝的pcre路徑
–with-zlib=../zlib-1.2.5                        #注意是未安裝的zlib路徑
–with-debug                                     #允許調試日誌
–http-client-body-temp-path     #客戶端請求臨時文件路徑
–http-proxy-temp-path                   #設置http proxy臨時文件路徑
–http-fastcgi-temp-path                 #設置http fastcgi臨時文件路徑
–http-uwsgi-temp-path=/var/tmp/nginx/uwsgi      #設置uwsgi 臨時文件路徑
–http-scgi-temp-path=/var/tmp/nginx/scgi                #設置scgi 臨時文件路徑
!
###########################################!!!瞭解結束!!!
groupadd nginx                          # 創建用戶組,名字為nginx;  用戶信息參考:Linux centos 新增/刪除用戶/組用戶權限規範 /etc/sudoers文件解釋
useradd nginx -g nginx -s /sbin/nologin -M
                                                        # 創建用戶,-s表示指定用戶所用的shell,此處為/sbin/nologin,表示不登錄。-M表示不創建用戶主目錄。-g表示指定用戶的組名為nginx。
## 執行編譯安裝
 ./configure  --prefix=/opt/local/nginx  --sbin-path=/opt/local/nginx/sbin/nginx --conf-path=/opt/local/nginx/conf/nginx.conf --error-log-path=/var/log/nginx/error.log  --http-log-path=/var/log/nginx/access.log  --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock  --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module --http-client-body-temp-path=/var/tmp/nginx/client/ --http-proxy-temp-path=/var/tmp/nginx/proxy/ --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi --http-scgi-temp-path=/var/tmp/nginx/scgi --with-pcre
make && make install
ln -s /opt/local/nginx/sbin/nginx /usr/bin/     # 修改啟動軟連;快捷方式
/opt/local/nginx/sbin/nginx
cd /var/tmp/
mkdir nginx
cd
nginx
nginx -t                                                                #已經軟連接過了
nginx
yum install -y net-tools                                        # 端口工具包
netstat -ntlp                                                   # 查看端口
nginx -s reload                                         # nginx  重載配置;重啟
firewall-cmd --permanent --add-port=80/tcp      # 防火牆放行80端口
systemctl restart firewalld
else                                                                    # 如果想直接結束:exit 與 fi 配合
 echo "nginx.conf存在已經安裝nginx"
fi
}
aznginx                                                         # 請不要使用系統保留關鍵字作用函數名稱 nginx  一條命令
######### php
azphp(){
groupadd www
useradd -g www www
# wget https://www.php.net/distributions/php-7.4.12.tar.gz
wget work.eisc.cn/ruanjian/rpm/lnmp/php-7.4.12.tar.gz
tar xzvf php-7.4.12.tar.gz
cd  php-7.4.12
yum install -y  libxml2-devel bzip2-devel curl-devel libjpeg-devel libpng-devel freetype-devel libxslt-devel libzip-devel
yum -y remove libzip-devel                      #先刪除舊版本
# wget https://nih.at/libzip/libzip-1.2.0.tar.gz
wget work.eisc.cn/ruanjian/rpm/lnmp/libzip-1.2.0.tar.gz
tar -zxvf libzip-1.2.0.tar.gz
cd libzip-1.2.0
./configure
#添加搜索路徑到配置文件
echo '/usr/local/lib64
/usr/local/lib
/usr/lib
/usr/lib64'>>/etc/ld.so.conf
ldconfig -v                                             #然後 更新配置
cp /usr/local/lib/libzip/include/zipconf.h /usr/local/include/zipconf.h
make && make install
cp php.ini-production /usr/local/php/lib/php.ini
                                                                # 建立目錄
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
ln -s /usr/local/php/sbin/php-fpm /usr/local/bin
}
azphp
Linux下編譯安裝Lnmp

Leave a Reply

Your email address will not be published. Required fields are marked *