#!/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