Shell 自动安装Apache
我们先回顾手动安装Apache(通过源码安装包)的步骤,然后分析、将手动执行代码转化为shell脚本。
手工安装Apache
参考 第9章 软件安装—Apache源码安装 。
我们先下载好安装文件并上传到指定目录/software/httpd-2.4.57.tar.bz2,不用在Shell里下载。
步骤1:解压
tar -xvf /software/httpd-2.4.57.tar.bz2 -C /usr/local/src/
步骤2:安装依赖
yum -y install gcc apr-devel apr-util-devel pcre-devel
步骤3:编绎
cd /usr/local/src/httpd-2.4.57
./configure --prefix=/usr/local/httpd
步骤4:编绎与安装
make && make install
步骤5:配置后台服务
1)复制程序到后台服务目录
cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
【重点】2)编辑文件httpd
vim /etc/init.d/httpd
#!/bin/sh下添加如下两行
#chkconfig: 345 85 15
#description:apache start and stop
步骤6:添加服务,设置为自动启动
chkconfig --add httpd
chkconfig httpd on
步骤7:启动服务
systemctl start httpd
步骤8:测试
curl localhost
自动安装Apache
目标
通过执行一个脚本文件,自动完成上述所有动作。
分析
第5步:2)编辑文件httpd
vim /etc/init.d/httpd
#!/bin/sh下添加行
#chkconfig: 345 85 15
这里需要修改文件,找到相应内容,追加1行,可以通过 sed命令完成。
sed -i \
'/#!\/bin\/sh/a#chkconfig: 345 85 15' \
/etc/init.d/httpd
-i表示修改会保存到文件;
前两行结尾的\用于将一条命令分多行;
'/字符串1/a字符串2'表示搜索字符串1,在下一行添加字符串2;
字符串#!/bin/s含有特殊字符/,/前加\进行转义。
sed命令更多用法见下节。
完整代码
01apache-install.sh
tar -xvf /software/httpd-2.4.57.tar.bz2 -C /usr/local/src/
echo '解压完成'
yum -y install gcc apr-devel apr-util-devel pcre-devel
echo '依赖包安装完成'
cd /usr/local/src/httpd-2.4.57
./configure --prefix=/usr/local/httpd
make && make install
echo '编绎安装完成'
cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
sed -i \
'/#!\/bin\/sh/a#chkconfig: 345 85 15' \
/etc/init.d/httpd
chkconfig --add httpd
chkconfig httpd on
echo '服务配置完成'
systemctl start httpd
echo '服务启动完成'
curl localhost
echo '测试完成'
执行
sh 01apache-install.sh
运行效果