apache安裝腳本使用shell建立

注意防火墻,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 安裝和配置完成!"

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/75542.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/75542.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/75542.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

wordpress主題使用中常見錯誤匯總

在WordPress主題的使用過程中,開發者可能會遇到各種問題。下面是一些常見錯誤的匯總,并給出了相應的解決方法。 一、主題安裝與激活錯誤 無法激活主題:檢查主題文件是否完整,以及是否符合WordPress的主題規范。 激活主題后出現…

如何設計一個訂單號生成服務?應該考慮那些問題?

如何設計一個訂單號生成服務?應該考慮那些問題? description: 在高并發的電商系統中,生成全局唯一的訂單編號是關鍵。本文探討了幾種常見的訂單編號生成方法,包括UUID、數據庫自增、雪花算法和基于Redis的分布式組件,并…

Springboot 集成 Flowable 6.8.0

1. 創建 Spring Boot 項目 通過 Spring Initializr(https://start.spring.io/ )創建一個基礎的 Spring Boot 項目,添加以下依賴: Spring WebSpring Data JPAMySQL DriverLombok(可選,用于簡化代碼&#x…

《TCP/IP網絡編程》學習筆記 | Chapter 22:重疊 I/O 模型

《TCP/IP網絡編程》學習筆記 | Chapter 22:重疊 I/O 模型 《TCP/IP網絡編程》學習筆記 | Chapter 22:重疊 I/O 模型理解重疊 I/O 模型重疊 I/O本章討論的重疊 I/O 的重點不在于 I/O 創建重疊 I/O 套接字執行重疊 I/O 的 WSASend 函數進行重疊 I/O 的 WSA…

搭建Redis哨兵集群

停掉現有的redis集群 因為這篇文章我是在 搭建完redis主從集群之后寫的,如果要是沒有搭建過這些,可以直接略過。要是從我上一篇 搭建redis主從集群過來的,可以執行下。 docker compose down 查找下redis相關進程 ps -ef | grep redis 可以看…

MySQL中,聚集索引和非聚集索引到底有什么區別?

文章目錄 1. 數據存儲方式2. 索引結構3. 查詢效率4. 索引數量5. 適用場景6. 示例說明7. 總結 在MySQL中,聚集索引和非聚集索引(也稱二級索引)的區別主要體現在數據存儲方式、索引結構和查詢效率等方面。以下是詳細對比: 1. 數據存…

看 MySQL InnoDB 和 BoltDB 的事務實現

BoltDB 事務實現 BoltDB 支持多讀單寫方式的并發級別 事務操作會鎖表 它的 MVCC 為 2 個版本,當前版本和正在寫的版本 多讀:可以并發讀當前版本 單寫(串行寫):寫時拷貝當前 B 樹,構建新 B 樹&#xff…

08_JavaScript數據操作方法_數組

目錄 一、創建一個數組 1.1 數組如何創建 字面量創建 構造函數創建 1.2 數組的長度 數組名.length 1.3 數組的索引 1.4 數組如何循環遍歷 for 循環遍歷 for in for of 二、數組的常用方法 (重點 面試) push 方法 unshift 方法 pop shif…

2025.3.25總結

工作:這兩天工作都沒啥產出,主要是工作狀態不太好,周日晚上兩點睡,周一晚上一點睡。熬夜傷身,但就是控制不住自己,睡前總要刷刷手機。本來想睡前看會書的,但這行為及其不穩定,抖音也…

《Python實戰進階》第33集:PyTorch 入門-動態計算圖的優勢

第33集:PyTorch 入門-動態計算圖的優勢 摘要 PyTorch 是一個靈活且強大的深度學習框架,其核心特性是動態計算圖機制。本集將帶您探索 PyTorch 的張量操作、自動求導系統以及動態計算圖的特點與優勢,并通過實戰案例演示如何使用 PyTorch 實現…

初識哈希表

一、題意 給定一個整數數組 nums 和一個目標值 target,要求你在數組中找出和為目標值的那兩個整數,并返回它們的數組下標。你可以假設每種輸入只會對應一個答案。但是,數組中同一個元素不能使用兩遍。 示例: 給定 nums [2, 7, …

23種設計模式-創建型模式-單例

文章目錄 簡介問題1. 確保一個類只有一個實例2. 為該實例提供全局訪問點 解決方案示例重構前:重構后: 拓展volatile 在單例模式中的雙重作用 總結 簡介 單例是一種創建型設計模式,它可以確保一個類只有一個實例,同時為該實例提供…

python裁剪nc文件數據

問題描述: 若干個nc文件儲存全球的1850-2014年月尺度的mrro數據(或其他數據),從1850-1到2014-12一共1980個月,要提取出最后35年1980.1~2014.12年也就是420個月的數據。 代碼實現 def aaa(input_file,output_file,bianliang,start_index,en…

深入解析 Spring Framework 5.1.8.RELEASE 的源碼目錄結構

深入解析 Spring Framework 5.1.8.RELEASE 的源碼目錄結構 1. 引言 Spring Framework 是 Java 領域最流行的企業級開發框架之一,廣泛用于 Web 開發、微服務架構、數據訪問等場景。本文將深入解析 Spring Framework 5.1.8.RELEASE 的源碼目錄結構,幫助開…

數據清洗:基于python抽取jsonl文件數據字段

基于python抽取目錄下所有“jsonl”格式文件。遍歷文件內某個字段進行抽取并合并。 import os import json import time from tqdm import tqdm # 需要先安裝:pip install tqdmdef process_files():# 設置目錄路徑dir_path r"D:\daku\關鍵詞識別\1623-00000…

Windows 下使用 Docker 部署 Go 應用與 Nginx 詳細教程

一、環境準備 1. 安裝必要軟件 Docker Desktop for Windows 下載地址:Docker Desktop: The #1 Containerization Tool for Developers | Docker 安裝時勾選"使用 WSL 2 引擎"(推薦) WSL 2(Windows Subsystem for Li…

C# .net ai Agent AI視覺應用 寫代碼 改作業 識別屏幕 標注等

C# net deepseek RAG AI開發 全流程 介紹_c# 向量處理 deepseek-CSDN博客 視覺多模態大模型 通義千問2.5-VL-72B AI大模型能看懂圖 看懂了后能干啥呢 如看懂圖 讓Agent 寫代碼 ,改作業,識別屏幕 標注等等。。。 據說是目前最好的免費圖片識別框架 通…

Docker多階段構建:告別臃腫鏡像的終極方案

Docker多階段構建:告別臃腫鏡像的終極方案 你是否遇到過這樣的問題:一個簡單的應用,Docker鏡像卻高達1GB?編譯工具、臨時文件、開發依賴全被打包進去,導致鏡像臃腫且不安全。 多階段構建(Multi-stage Build) 就是為解決這一問題而生——它像搬家時“只帶必需品”,讓生…

大模型應用開發之大模型工作流程

一:大模型的問答工作流程 1.1: 分詞和向量化 如上圖所示,我們如果讓大模型去回答問題,首先我們會輸入一些文字給到大模型,大模型本質上是個數學模型,它是理解不了人類的整句話的,所以它會把我們的對應的句…

SpringMVC 請求處理

SpringMVC 請求處理深度解析:從原理到企業級應用實踐 一、架構演進與核心組件協同 1.1 從傳統Servlet到前端控制器模式 SpringMVC采用前端控制器架構模式,通過DispatcherServlet統一處理請求,相比傳統Servlet的分散處理方式,實…