shell 腳本搭建apache

#!/bin/bash
# Set Apache version to install
## author: yuan# 檢查外網連接
echo "檢查外網連接..."
ping www.baidu.com -c 3 > /dev/null 2>&1
if [ $? -eq 0 ]; thenecho "外網通訊良好!"
elseecho "網絡連接失敗,請檢查你的網絡設置!"exit 1
fi
sleep 5# 檢查并安裝 APR 庫
echo "檢查并安裝 APR 庫..."
if [ -f "/usr/include/apr.h" ]; thenecho "APR 庫已安裝"
elseecho "APR 庫未安裝,開始從網絡安裝..."if [ -f "/etc/debian_version" ]; thensudo apt-get updatesudo apt-get install -y libapr1-dev libaprutil1-develif [ -f "/etc/redhat-release" ]; thensudo yum install -y apr-devel apr-util-develelseecho "不支持的 Linux 發行版,無法自動安裝 APR 庫"exit 1fi
fi
sleep 5# 檢查并安裝 PCRE 庫
echo "檢查并安裝 PCRE 庫..."
if [ -f "/usr/include/pcre.h" ]; thenecho "PCRE 庫已安裝"
elseecho "PCRE 庫未安裝,開始從網絡安裝..."if [ -f "/etc/debian_version" ]; thensudo apt-get updatesudo apt-get install -y libpcre3-develif [ -f "/etc/redhat-release" ]; thensudo yum install -y pcre-develelseecho "不支持的 Linux 發行版,無法自動安裝 PCRE 庫"exit 1fi
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 ]; thenecho "下載失敗,請檢查網絡連接或 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" ]; thenecho "未能找到 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 ]; thenecho "配置失敗,請檢查錯誤信息!"exit 1
fimake
if [ $? -ne 0 ]; thenecho "編譯失敗,請檢查錯誤信息!"exit 1
fimake 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 ]; thenecho "Apache 服務啟動成功!"
elseecho "Apache 服務啟動失敗,請檢查錯誤信息!"exit 1
fi
sleep 5echo "Apache 安裝和配置完成!"

測試

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

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

相關文章

使用OBS進行webRTC推流參考

參考騰訊云官方文檔: 云直播 OBS WebRTC 推流_騰訊云 說明非常詳細,分為通過WHIP和OBS插件的形式進行推流。 注意:通過OBS插件的形式進行推流需要使用較低的版本,文檔里有說明,需要仔細閱讀。

Excel 小黑第18套

對應大貓18 .txt 文本文件,點數據 -現有鏈接 -瀏覽更多 (文件類型:可以點開文件看是什么分隔的) 雙擊修改工作表名稱 為表格添加序號:在數字那修改格式為文本,輸入第一個序號樣式(如001&#…

快速入手-基于Django的mysql配置(三)

Django開發操作數據庫更簡單,內部提供了ORM框架。比如mysql,舊版本用pymysql對比較多,新的版本采用mysqlclient。 1、安裝mysql模塊 pip install mysqlclient 2、Django的ORM主要做了兩件事 (1)CRUD數據庫中的表&am…

【總結篇】java多線程,新建線程有幾種寫法,以及每種寫法的優劣勢

java多線程 新建線程有幾種寫法,以及每種寫法的優劣勢 [1/5]java多線程 新建線程有幾種寫法–繼承Thread類以及他的優劣勢[2/5]java多線程-新建線程有幾種寫法–實現Runnable接口以及他的優劣勢[3/5]java多線程 新建線程有幾種寫法–實現Callable接口結合FutureTask使用以及他的…

基于YOLOv8與ByteTrack的車輛行人多目標檢測與追蹤系統

作者主頁:編程千紙鶴 作者簡介:Java領域優質創作者、CSDN博客專家 、CSDN內容合伙人、掘金特邀作者、阿里云博客專家、51CTO特邀作者、多年架構師設計經驗、多年校企合作經驗,被多個學校常年聘為校外企業導師,指導學生畢業設計并參…

【芯片驗證】面試題·對深度為60的數組進行復雜約束的技巧

朋友發給我的芯片驗證筆試題,覺得很有意思,和大家分享一下。 面試題目 class A中一個長度為60的隨機數組rand int arr[60],如何寫約束使得: 1.每個元素的值都在(0,100]之間,且互不相等; 2.最少有三個元素滿足勾股數要求,比如數組中包含3,4,5三個點; 請以解約束最快…

springmvc中使用interceptor攔截

HandlerInterceptor 是Spring MVC中用于在請求處理之前、之后以及完成之后執行邏輯的接口。它與Servlet的Filter類似,但更加靈活,因為它可以訪問Spring的上下文和模型數據。HandlerInterceptor 常用于日志記錄、權限驗證、性能監控等場景。 ### **1. 創…

【網絡協議】基于UDP的可靠協議:KCP

TCP是為流量設計的(每秒內可以傳輸多少KB的數據),講究的是充分利用帶寬。而 KCP是為流速設計的(單個數據包從一端發送到一端需要多少時間),以10%-20%帶寬浪費的代價換取了比 TCP快30%-40%的傳輸速度。TCP信…

【論文閱讀】Contrastive Clustering Learning for Multi-Behavior Recommendation

論文地址:Contrastive Clustering Learning for Multi-Behavior Recommendation | ACM Transactions on Information Systems 摘要 近年來,多行為推薦模型取得了顯著成功。然而,許多模型未充分考慮不同行為之間的共性與差異性,以…

藍橋杯2023年第十四屆省賽真題-子矩陣

題目來自DOTCPP: 暴力思路(兩個測試點超時): 題目要求我們求出子矩陣的最大值和最小值的乘積,我們可以枚舉矩陣中的所有點,以這個點為其子矩陣的左上頂點,然后判斷一下能不能構成子矩陣。如果可…

centos 磁盤重新分割,將原來/home 下部分空間轉移到 / 根目錄下

上次重裝系統時,不小心將一半磁盤放在了 /home 下面,運行一段時間后,發現/home 空間沒有怎么用,反而是/ 目錄報警說磁盤用完了,準備將 /home下的空間分一部分給主目錄 / 先查看下 空間分布情況 df -lh 可以看到&…

【C#語言】C#同步與異步編程深度解析:讓程序學會“一心多用“

文章目錄 ?前言?一、同步編程:單線程的線性世界🌟1、尋找合適的對象?1) 🌟7、設計應支持變化 ?二、異步編程:多任務的協奏曲?三、async/await工作原理揭秘?四、最佳實踐與性能陷阱?五、異步編程適用場景?六、性能對比實測…

Redis命令詳解--集合

Redis set 是string類型的無序集合。集合成員是唯一的,這就意味著集合中不能出現重復的數據,常用命令: SADD key member1 [member2...] 向集合添加一個或多個成員 SREM key member1 [member2...] 移除集合中一個或多個成員 SMEMBERS key 獲…

學習筆記 ASP.NET Core Web API 8.0部署到iis

一.修改配置文件 修改Program.cs配置文件將 if (app.Environment.IsDevelopment()) {app.UseSwagger();app.UseSwaggerUI(); }修改為 app.UseSwagger(); app.UseSwaggerUI(); 二.安裝ASP.NET Core Runtime 8.0.14 文件位置https://dotnet.microsoft.com/en-us/download/do…

配置 VSCode 的 C# 開發環境

1. 安裝必要的依賴 1.1 VSCode 擴展 安裝 C# 相關插件(如 C#、C# Extensions 等)。 1.2 .NET SDK 下載地址:.NET SDK 下載頁面 1.3 安裝檢測 在命令行輸入以下命令,如果正確返回了版本號,則表示 .NET SDK 安裝成…

從零搭建微服務項目Pro(第6-1章——Spring Security+JWT實現用戶鑒權訪問與token刷新)

前言: 在現代的微服務架構中,用戶鑒權和訪問控制是非常重要的一部分。Spring Security 是 Spring 生態中用于處理安全性的強大框架,而 JWT(JSON Web Token)則是一種輕量級的、自包含的令牌機制,廣泛用于分…

使用HAI來打通DeepSeek的任督二脈

一、什么是HAI HAI是一款專注于AI與科學計算領域的云服務產品,旨在為開發者、企業及科研人員提供高效、易用的算力支持與全棧解決方案。主要使用場景為: AI作畫,AI對話/寫作、AI開發/測試。 二、開通HAI 選擇CPU算力 16核32GB,這…

【保姆級】阿里云codeup配置Git的CI/CD步驟

以下是通過阿里云CodeUp的Git倉庫進行CI/CD配置的詳細步驟,涵蓋前端(Vue 3)和后端(Spring Boot)項目的自動化打包,并將前端打包結果嵌入到Nginx的Docker鏡像中,以及將后端打包的JAR文件拷貝至Do…

LINUX網絡編程API原型詳細解析

1. 網絡體系 1.1. 簡介 網絡采用分而治之的方法設計,將網絡的功能劃分為不同的模塊,以分層的形式有機組合在一起。 每層實現不同的功能,其內部實現方法對外部其他層次來說是透明的。每層向上層提供服務,同時使用下層提供…

藍橋杯 之 暴力回溯

文章目錄 數字接龍小u的最大連續移動次數問題迷宮 在藍橋杯中,十分喜歡考察對于網格的回溯的問題,對于這類的問題,常常會使用到這個DFS和BFS進行考察,不過無論怎么考察,都只是會在最基礎的模本的基礎上,根據…