Apache源码编译安装脚本
Apache是开源的的、最流行的Web服务器软件之一,它快速、可靠并且可通过简单的API扩充,将Perl/Python/PHP等解释器编译到服务器中。Apache的模块超多,以及具有运行稳定,强大的rewrite功能、动态处理能力强等优点,在追求稳定的业务环境下被广泛使用。
以下是Apache2.4版本prefork模式的源码编译脚本:
#!/bin/bash
#
#********************************************************************
#Author:        Eddie.Peng
#URL:           https://www.cnblogs.com/eddie1127/
#Date:          2019-10-18
#FileName:      httpd_install.sh
#Description:   The script for install Apache httpd web server
#********************************************************************
# Set color
COLORBEG="\033[1;31m"
COLOREND="\033[0m"
# Check if user is root
if [ $(id -u) !=0 ];then
	echo -e "${COLORBEG} Error! You must be root to run this script,please use root to install. ${COLOREND}"
	exit 10
fi
clear
echo "=========================================================================="
echo " "
echo "The script for install Apache httpd web server"
echo " "
echo "=========================================================================="
#modify system and kernel args
ulimit -SHn 65535
cat >>/etc/security/limits.conf << EOF
* soft nproc
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535
EOF
cat >> /etc/sysctl.conf << EOF
fs.file-max = 2000000
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_keepalive_intvl = 15
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_syncookies = 1
net.core.netdev_max_backlog = 8096
net.core.somaxconn = 65535
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.icmp_ignore_bogus_error_responses = 1
EOF
sysctl -p
# Install dependent software packge
yum -y install wget gcc apr-devel apr-util-devel pcre-devel openssl-devel libnghttp2-devel expat-devel
#Check files if exits
echo "=============================== Check files ========================================="
CUR_DIR=$(pwd)
VER=httpd-2.4.41.tar.gz
DIR=${VER%.tar*}
INSTALL_DIR=/usr/local/httpd24
cd $CUR_DIR
if [ -s $VER ];then
	echo "$VER [found]"
else
	echo -e "${COLORBEG} $VER not found!!! download now... ${COLOREND}"
	wget -c http://mirrors.tuna.tsinghua.edu.cn/apache/httpd/$FILE
fi
#Create run user for httpd server
id -u apache
if [ $? -eq 0 ];then
	echo -e "${COLORBEG} user apache already exist,skip... ${COLOREND}"
else
	groupadd -g 48 apache
	useradd -u 48 -r -s /sbin/nologin -g apache apache
	echo -e "\033[1;32m user apache has been created. \033[0m"
fi
#Install httpd web server
cd $CUR_DIR
tar -xvf $VER -C /usr/local/src
cd /usr/local/src/$DIR
./configure --prefix=$INSTALL_DIR \
--enable-so \
--enable-ssl \
--enable-cgi \
--enable-http \
--enable-http2 \
--enable-proxy \
--enable-proxy-fcgi \
--enable-rewrite \
--with-zlib \
--with-pcre \
--with-mpm=prefork \
--enable-modules=most \
--enable-mpms-shared=all \
--disable-version
make -j $(nproc) && make install
echo "===================================== Check install ================================================="
clear
INSTALL=""
echo "Checking..."
if [ -s $INSTALL_DIR/bin/httpd ] && [ -s $INSTALL_DIR/conf/httpd.conf ];then
	echo -e "\033[1;32m httpd install OK! \033[0m"
	INSTALL="OK"
else
	echo -e "${COLORBEG} Error,$INSTALL_DIR/bin/httpd not found! httpd install failed,please check ${COLOREND}"
fi
if [ "$INSTALL" = "OK" ];then
	echo -e "\033[1;32m Congratulation! httpd install completed! enjoy it. \033[0m"
	echo "================================================================================"
	echo "The path of some dirs:"
	echo "httpd_exec_dir: $INSTALL_DIR/bin"
	echo "httpd config : $INSTALL_DIR/conf"
	echo "================================================================================="
else
	echo -e "${COLORBEG} Sorry,httpd install Failed! Please check and reinstall. ${COLOREND}"
	exit 20
fi
#Add httpd service on start up
cat > /usr/lib/systemd/system/httpd.service << EOF
[Unit]
Description=The Apache HTTP Server
After=network.target remote-fs.target nss-lookup.target
Documentation=man:httpd(8)
Documentation=man:apachectl(8)
[Service]
Type=forking
#EnvironmentFile=/etc/sysconfig/httpd
ExecStart=$INSTALL_DIR/bin/httpd $OPTIONS -k start
ExecReload=$INSTALL_DIR/bin/httpd $OPTIONS -k graceful
ExecStop=/bin/kill -WINCH \${MAINPID}
KillSignal=SIGCONT
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable --now httpd.service
#Check start up
if [ $? -eq 0 ];then
	echo -e "\033[1;32m httpd service start success! \033[0m"
else
	echo -e "${COLORBEG} httpd service start failed,please check. ${COLOREND}"
fi
Apache源码编译安装脚本的更多相关文章
- bash-2 httpd服务的源码编译安装脚本
		httpd服务的源码编译安装脚本 #!/bin/bash # #******************************************************************** ... 
- apache源码编译安装
		源码安装apche 下载apache的源码包文件 访问http://mirror.bit.edu.cn/apache/httpd/,复制如下gz文件的链接地址,并使用wget下载到本地 wget -P ... 
- 基于cdh5.10.x hadoop版本的apache源码编译安装spark
		参考文档:http://spark.apache.org/docs/1.6.0/building-spark.html spark安装需要选择源码编译方式进行安装部署,cdh5.10.0提供默认的二进 ... 
- centos 7.1 apache 源码编译安装
		Apache编译安装 一,需要软件: http://mirrors.cnnic.cn/apache//apr/apr-1.5.2.tar.gz 1.apr-1.5.2.tar.gz http://mi ... 
- apache源码编译安装详解
		查看是否安装 rpm -qa httpd 如果已安装,则卸载:rpm -e 卸载 --nodeps 不考虑意外 下载 wget http://mirrors.sohu.c ... 
- MySQL 源码编译安装脚本
		cat mysql_init.shmysql_init.sh mysql_init.sh.20190401 mysql_init.sh.back20171030 ... 
- Shell脚本一键部署——源码编译安装MySQL及自动补全工具
		Shell脚本一键部署--源码编译安装MySQL及自动补全工具 编译安装MySQL 1.软件包 Mysql安装包 将安装包拖至/opt目录下,编辑一个脚本文件,将以下内容复制进去,然后source或者 ... 
- Linux 从源码编译安装 OpenSSH
		https://blog.csdn.net/bytxl/article/details/46639073 Linux 从源码编译安装 OpenSSH以及各问题解决 2015年06月25日 17:37: ... 
- Httpd服务进阶知识-LAMP源码编译安装
		Httpd服务进阶知识-LAMP源码编译安装 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 想必大家都知道,动态资源交给fastcgi程序处理,静态资源依旧由httpd服务器处理 ... 
随机推荐
- C++中#define与typedefine的区别
			原文链接:https://www.cnblogs.com/fengfengqingqingyangyang/p/3270432.html (1)typedef是用来定义关键字/标识符的别名,并未分配内 ... 
- Regular Forestation CodeForces - 1252F(树同构)
			Regular Forestation \[ Time Limit: 1000 ms\quad Memory Limit: 262144 kB \] 题意 给出一个节点为 \(n\) 的树,问删掉树上 ... 
- 第四章、Go-面向“对象”
			4.1.结构体和方法 (1)go语言的面向对象 go仅支持封装,不支持继承和多态 go语言没有class,只有struct (2)struct的创建 package main import " ... 
- 清北学堂(2019 5 2) part 5
			今天讲图论,顺便搞一搞之前没弄完的前向星dij 1.图的基本概念(课件原话): G (图)= (V(点); E(边)) 一般来说,图的存储难度主要在记录边的信息 无向图的存储中,只需要将一条无向边拆成 ... 
- JaCoCo覆盖率计数器
			覆盖率计数器 JaCoCo使用一组不同的计数器来计算覆盖率指标.所有这些计数器都是从Java类文件里获取信息,这些类文件包含Java 字节码指令和调试信息.即使没有可用源代码情况下,这种方法可以实时有 ... 
- String.format方法使用-浅析(转)
			转自 https://blog.csdn.net/u010137760/article/details/82869637 1.代码中简单使用2.源码调用的方法3.相关类-Formatter3.1可选 ... 
- Java 并发编程-不懂原理多吃亏(送书福利)
			作者 | 加多 关注阿里巴巴云原生公众号,后台回复关键字"并发",即可参与送书抽奖!** 导读:并发编程与 Java 中其他知识点相比较而言学习门槛较高,从而导致很多人望而却步.但 ... 
- server 2012 r2 配置
			filezilla的问题还是让人摸不着头脑,配置和别的机器上一样就是报STL权限错误,最后换了个端口就连上了. 服务器,填远端IP,被动模式打开,生成一个证书,被动模式的商品一定要在入站规则里 客户端 ... 
- W5500封装
			W5500是韩国一款集成全硬件 TCP/IP 协议栈的嵌入式以太网控制器,W5500同时也是一颗工业级以太网控制芯片,最近发现我们国内也有和W5500 芯片一样芯片 介绍给大家 如下图: 
- ab小工具的Failed requests多的问题
			ab小工具的Failed requests多的问题 这个是PHP返回的length不一致造成的 是ab的bug 所以不用理会.. 测试并发写100就行了 一般100没错误 
