一键安装apache脚本

简介: 【4月更文挑战第30天】

》》》》》魏红斌带你学shell脚本《《《《《


更多shell脚本学习点击个人主页


作为一个资深程序猿,我将带领您从零开始,一步步踏上运维之旅,无论您是否拥有现成的服务器,都将学会如何轻松购买、部署,并通过编写及应用精心设计的Shell脚本,解决实际工作中遇到的问题。这些脚本不仅源自真实的业务场景,经历了反复实践与严格测试,确保了其简洁高效、易于理解且便于使用。更重要的是,我们将全程免费分享,并深度解析背后原理,助您深入理解并灵活运用,每一款脚本均经过真实业务场景的反复打磨与严格测试,秉持着简洁高效、易于理解和使用的理念设计,无偿提供并且提供相关解析过程,让读者能更深入了解相关内容

无服务器的朋友们

让我们先从选购并部署服务器开始。只需简单三步,即可拥有您的专属云服务器:

  1. 访问ECS官网:点击链接直达阿里云ECS网站:ECS选择网址。这是您获取高质量云服务器的第一站。
  2. 选择并购买:在琳琅满目的服务器配置中,挑选符合您需求的那一款,一键下单,完成支付。整个过程犹如在线购物般便捷。
  3. 进入ECS控制台:支付成功后,您将被引导至ECS管理控制台。在这里,您可以全面掌控您的服务器资源,后续的所有运维操作都将在此展开。

已有服务器的朋友们

如果您已拥有ECS实例,那么请直接登录ECS管理控制台在左侧导航栏中,依次选择“实例与镜像” > “实例”,确保您已定位到目标资源所在的资源组和地域。接下来,在实例列表中找到待连接的实例,点击操作列下的“远程连接”,选择“通过Workbench远程连接”并点击“立即登录”。

登录实例

无论是新购还是已有服务器,接下来都需要进行实例登录。这里支持多种认证方式,以最常见的“密码认证”为例:

  • 输入用户名(通常为rootecs-user)。
  • 接着,输入登录密码。如果您忘记了密码,无需担忧,您可以在ECS实例详情页面查询,或者通过“更改密码”功能进行修改。

编写与运行Shell脚本

成功登录后,您将看到一个熟悉的命令行界面——这就是您的运维主战场。现在,键入vim test.sh,我们便进入了文本编辑模式,准备创建第一个Shell脚本。

按下键盘上的i键,进入插入模式,此刻您可以自由地复制粘贴今天要学习的脚本代码,粘贴后按ecs后,按:wq保存脚本,可以用./ test.sh或者sh test.sh进行脚本执行。

今天我们要学习的脚本是(脚本内容直接复制粘贴即可):

#!/bin/bash

CPUS=`lscpu | sed -nr '4 s/\S+:\s+(\S+)$/\1/p'`

VERSION=2.4.46

TAR_SUFFIX="tar.bz2"

DOWLOAD_DIR=/usr/src

DEST_DIR=/usr/local/src

INSTALL_DIR=/apps/httpd

RE_VAR=`lsb_release -i | sed -nr '/^Distributor ID/s/(\S+\s+){2}(\S)/\2/p'`

[[ "$RE_VAR" =~ "CentOS" ]] || { echo -e "${YELLOW}warning:${DIST} 暂时没有安装...! ${END}" ; exit 1 ; }

rpm -q wget &>/dev/null || { echo -e "${YELLOW}warning: Install wget ${END}" ; yum -y install wget &>/dev/null ; }

echo -e "${GREEN}Downloading httpd packages....${END}"

wget -P $DOWLOAD_DIR https://mirrors.bfsu.edu.cn/apache//httpd/httpd-${VERSION}.${TAR_SUFFIX} &>/dev/null

[ "$?" -eq 0 ] || { echo -e "${RED} httpd-${VERSION}.${TAR_SUFFIX} 下载失败....!${END}" ; exit 2 ; }

id apache &> /dev/null || { groupadd -g 80 -r apache ; useradd -u 80 -g 80 -s /sbin/nologin -r apache ; }

echo -e "${GREEN}Downloading programs depends on packages.${END}"

yum -y install dos2unix bzip2 redhat-lsb-core apr-devel gcc gcc-c++ pcre-devel openssl-devel make redhat-rpm-config

net-tools apr-util-devel &>/dev/null

# 解压软件包到指定目录

tar xf ${DOWLOAD_DIR}/httpd-${VERSION}.${TAR_SUFFIX} -C ${DEST_DIR}

cd ${DEST_DIR}/httpd-${VERSION}/

# 预配置 && 编译 && 安装

./configure --prefix=${INSTALL_DIR} --sysconfdir=/etc/httpd --enable-ssl

make -j ${CPUS} && make install

# 将程序启动脚本路径,追加至PATH环境变量,并使配置文件生效。

echo 'PATH='${INSTALL_DIR}/bin:'$PATH' >> /etc/profile.d/apache.sh

source /etc/profile.d/apache.sh

# 修改配置文件 用户和组

sed -ri '/^User/ s/(\S+\s+)\S+$/\1apache/' /etc/httpd/httpd.conf

sed -ri '/^Group/ s/(\S+\s+)\S+$/\1apache/' /etc/httpd/httpd.conf

sed -i '/^#ServerName/s/^#//' /etc/httpd/httpd.conf

# 启动服务

apachectl start &>/dev/null

sleep 3

# 定义服务端口号 和 pid 文件

PID_FILE="${INSTALL_DIR}/logs/httpd.pid"

PORT_LINE=`netstat -antptu | grep -o "\<80\>" |wc -l`

# 判断服务是否启动成功。

[ -e ${PID_FILE} -a "${PORT_LINE}" -eq "1" ] || { echo -e "${RED}error:Service startup failed${END}" ; exit 3 ;

}

echo -e "${GREEN}Service started successfully!!!${END}"

下面是对脚本各部分功能的详细解析:

  1. 环境变量初始化:
  • CPUS 变量通过lscpu命令获取系统CPU核心数,用于后续编译时并行处理。
  • VERSION 设置了要下载的Apache版本为2.4.46。
  • TAR_SUFFIX 指定下载文件的格式为tar.bz2。
  • 分别定义了下载目录DOWLOAD_DIR、目标解压目录DEST_DIR、安装目录INSTALL_DIR
  1. 系统检查与依赖安装:
  • 使用正则表达式检查系统发行版,确保是CentOS,否则脚本退出。
  • 检查wget是否已安装,如未安装则使用yum自动安装。
  1. 下载Apache源码包:
  • 使用wget尝试从北京外国语大学镜像站点下载指定版本的Apache源码压缩包。但根据提供的反馈,该URL返回404错误,意味着指定的文件不存在或路径错误。
  1. 用户与组管理:
  • 如果apache用户和组不存在,则创建它们,设置UID和GID为80,并禁用登录Shell。
  1. 安装依赖库:
  • 使用yum安装一系列编译和运行Apache所需的依赖包,包括开发工具、库文件等。
  1. 解压与编译安装:
  • 解压缩下载的源码包到DEST_DIR目录下。
  • 进入解压后的目录,执行配置、编译(利用所有CPU核心加速)、安装步骤。配置中指定了安装路径、配置文件目录及启用SSL支持。
  1. 环境配置与服务设置:
  • 更新环境变量PATH以包含Apache的可执行文件路径。
  • 修改Apache配置文件httpd.conf,设置运行用户和组为刚创建的apache,并取消ServerName行的注释。
  1. 启动服务与验证:
  • 使用apachectl start启动Apache服务,并等待3秒以确保服务有足够时间启动。
  • 检查PID文件是否存在以及端口80是否被监听,以此判断服务是否成功启动。
  1. 输出结果:
  • 根据服务启动情况输出成功或失败的消息。

注意:由于下载环节的URL无效,脚本在实际运行时会因为无法下载所需文件而失败。需要更正下载链接后才能顺利完成安装过程。

如果想上手操作练代码的同学们可以通过阿里云ecs服务器免费试用参与!

入口:新老同学免费试用

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
目录
相关文章
|
5月前
|
Ubuntu Java 应用服务中间件
如何通过 Apt-Get 在 Ubuntu 14.04 上安装 Apache Tomcat 7
如何通过 Apt-Get 在 Ubuntu 14.04 上安装 Apache Tomcat 7
110 0
|
2月前
|
消息中间件 Ubuntu Java
Ubuntu系统上安装Apache Kafka
Ubuntu系统上安装Apache Kafka
|
3月前
|
Ubuntu 网络安全 Apache
Ubuntu下安装Apache2.4.7遇到的问题及解决办法
Ubuntu下安装Apache2.4.7遇到的问题及解决办法
55 2
|
5月前
|
Ubuntu 关系型数据库 MySQL
在 Ubuntu 14.04 服务器上使用 Apache 安装 Drupal 的方法
在 Ubuntu 14.04 服务器上使用 Apache 安装 Drupal 的方法
47 0
|
5月前
|
存储 缓存 Ubuntu
如何在 Apache Web 服务器中安装、配置和使用模块
如何在 Apache Web 服务器中安装、配置和使用模块
97 0
|
5月前
|
Ubuntu Java 应用服务中间件
在Ubuntu 16.04上安装Apache Tomcat 8的方法
在Ubuntu 16.04上安装Apache Tomcat 8的方法
57 0
|
5月前
|
安全 Java 应用服务中间件
在CentOS 7上安装Apache Tomcat 8的方法
在CentOS 7上安装Apache Tomcat 8的方法
169 0
|
5月前
|
Ubuntu 安全 Java
在Ubuntu 14.04上安装Apache Tomcat 8的方法
在Ubuntu 14.04上安装Apache Tomcat 8的方法
38 0
|
5月前
|
安全 Java 应用服务中间件
如何通过 Yum 在 CentOS 7 上安装 Apache Tomcat 7
如何通过 Yum 在 CentOS 7 上安装 Apache Tomcat 7
242 0
|
5月前
|
消息中间件 存储 Ubuntu
在Ubuntu 14.04上安装Apache Kafka的方法
在Ubuntu 14.04上安装Apache Kafka的方法
26 0

推荐镜像

更多