注意防火墻,yum,網絡連接等
以下是具體的apache安裝腳本
#!/bin/bash
# Set Apache version to install
## author: yuan
?
# 檢查外網連接
echo "檢查外網連接..."
ping www.baidu.com -c 3 > /dev/null 2>&1
if [ $? -eq 0 ]; then
? ? echo "外網通訊良好!"
else
? ? echo "網絡連接失敗,請檢查你的網絡設置!"
? ? exit 1
fi
sleep 5
?
# 檢查并安裝 APR 庫
echo "檢查并安裝 APR 庫..."
if [ -f "/usr/include/apr.h" ]; then
? ? echo "APR 庫已安裝"
else
? ? echo "APR 庫未安裝,開始從網絡安裝..."
? ? if [ -f "/etc/debian_version" ]; then
? ? ? ? sudo apt-get update
? ? ? ? sudo apt-get install -y libapr1-dev libaprutil1-dev
? ? elif [ -f "/etc/redhat-release" ]; then
? ? ? ? sudo yum install -y apr-devel apr-util-devel
? ? else
? ? ? ? echo "不支持的 Linux 發行版,無法自動安裝 APR 庫"
? ? ? ? exit 1
? ? fi
fi
sleep 5
?
# 檢查并安裝 PCRE 庫
echo "檢查并安裝 PCRE 庫..."
if [ -f "/usr/include/pcre.h" ]; then
? ? echo "PCRE 庫已安裝"
else
? ? echo "PCRE 庫未安裝,開始從網絡安裝..."
? ? if [ -f "/etc/debian_version" ]; then
? ? ? ? sudo apt-get update
? ? ? ? sudo apt-get install -y libpcre3-dev
? ? elif [ -f "/etc/redhat-release" ]; then
? ? ? ? sudo yum install -y pcre-devel
? ? else
? ? ? ? echo "不支持的 Linux 發行版,無法自動安裝 PCRE 庫"
? ? ? ? exit 1
? ? fi
fi
sleep 5
?
# 定義 Apache 版本變量
APACHE_VERSION="2.4.56" ?# 示例版本,根據需要修改
APACHE_TARBALL="http://archive.apache.org/dist/httpd/httpd-$APACHE_VERSION.tar.gz"
APACHE_TARBALL_NAME="httpd-$APACHE_VERSION.tar.gz"
echo "定義 Apache 版本為 $APACHE_VERSION"
sleep 5
?
# 下載 Apache 安裝包
echo "開始下載 Apache $APACHE_VERSION..."
curl -O $APACHE_TARBALL
if [ $? -ne 0 ]; then
? ? echo "下載失敗,請檢查網絡連接或 Apache 版本號是否正確!"
? ? exit 1
fi
echo "下載完成!"
sleep 5
?
# 解壓安裝包
tar -zxvf $APACHE_TARBALL_NAME
cd httpd-$APACHE_VERSION
?
# 檢測 APR 安裝路徑
APR_CONFIG=$(which apr-1-config)
if [ -z "$APR_CONFIG" ]; then
? ? echo "未能找到 apr-1-config,請確保 APR 已正確安裝并指定正確的路徑"
? ? exit 1
fi
?
# 編譯安裝 Apache
echo "開始編譯安裝 Apache..."
./configure --prefix=/usr/local/apache --with-apr=$(dirname $APR_CONFIG) --with-pcre=/usr
if [ $? -ne 0 ]; then
? ? echo "配置失敗,請檢查錯誤信息!"
? ? exit 1
fi
?
make
if [ $? -ne 0 ]; then
? ? echo "編譯失敗,請檢查錯誤信息!"
? ? exit 1
fi
?
make install
echo "Apache 安裝完成!"
sleep 5
?
# 配置防火墻和權限
echo "配置防火墻和權限..."
systemctl stop firewalld
systemctl disable firewalld
echo "防火墻已經關閉"
?
sed -i 's/SELINUX=*/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
echo "SELinux 已禁用"
sleep 5
?
# 啟動 Apache 服務
echo "啟動 Apache 服務..."
/usr/local/apache/bin/apachectl start
if [ $? -eq 0 ]; then
? ? echo "Apache 服務啟動成功!"
else
? ? echo "Apache 服務啟動失敗,請檢查錯誤信息!"
? ? exit 1
fi
sleep 5
?
echo "Apache 安裝和配置完成!"