Linux下源码安装Apache详解

1、下载Apache安装的包
https://mirrors.aliyun.com/apache/httpd/httpd-2.4.38.tar.bz2
解压 tar zxf httpd-2.4.38.tar.bz2 -C /opt
http://apache.fayea.com/apr/apr-1.6.5.tar.gz
解压tar zxf apr-1.6.5.tar.gz -C /opt
http://apache.fayea.com/apr/apr-util-1.6.1.tar.gz
解压 tar zxf apr-util-1.6.1.tar.gz -C /opt
http://ftp.pcre.org/pub/pcre/pcre-8.00.tar.gz
解压 tar zxf pcre-8.00.tar.gz -C /opt
注意apr安装包版本要比apr-util安装包版本相同或者低。
2、安装Apache所需要的环境
yum install gcc gcc-c++ make -y
3、建立安装的目录
安装目录放在/usr/local下面建立如下
mkdir apr
mkdir apr-util
mkdir pcre
mkdir apache
4、安装apr
cd /opt/apr-1.6.5
1、建立安装检查环境
./configure --prefix=/usr/local/apr(指定安装目录)
生成一个makefile编译文件
用echo $? 可以查看命令是否执行成功若为0则成功否则失败
2、编译
make
作用:将源码包编译为机器码,编译失败,make clean 清除之前的编译缓存,解决依赖关系后再make。
用echo $?查看是否成功
3、安装
make install
用echo $?查看是否成功
5、安装apr-util
cd /opt/apr-util-1.6.1
1、建立安装检查环境
./configure --prefix=/usr/local/apr-util (指定安装目录)–with-apr=/usr/local/apr/bin/apr-1-config (和apr建立依赖关系)
用echo $? 查看是否执行成功
2、编译
make
作用:将源码包编译为机器码,编译失败,make clean 清除之前的编译缓存,解决依赖关系后再make。
用echo $?查看是否成功
可能出现错误安装 yum install expat-devel -y
3、安装
make install
用echo $?查看是否成功
6、安装pcre
cd /opt/pcre-8.00
1、建立安装检查环境
./configure --prefix=/usr/local/pcre(指定安装目录)
用echo $? 查看是否执行成功
2、编译
make
作用:将源码包编译为机器码,编译失败,make clean 清除之前的编译缓存,解决依赖关系后再make。
用echo $?查看是否成功
3、安装
make install
用echo $?查看是否成功
7、安装apache
cd /opt/httpd-2.4.38
1、建立安装检查环境
./configure --prefix=/usr/local/apache/ --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre/
用echo $? 查看是否执行成功
2、编译
make
作用:将源码包编译为机器码,编译失败,make clean 清除之前的编译缓存,解决依赖关系后再make。
用echo $?查看是否成功
3、安装
make install
用echo $?查看是否成功
8、启动Apache
1、关闭防火墙
systemctl stop firewalld
2、关闭内核防火墙
setenforce 0
3、启动apache(用绝对路径启动Apache)
/usr/local/apache/bin/apachectl start
4、查看进程
ps -ef |grep httpd
在这里插入图片描述
这样Apache就启动了。
9、设置开机自启
1、添加启动服务
cp /usr/local/apache/bin/apachectl /etc/rc.d/init.d/httpd
chkconfig --add httpd
2、执行systemctl stop httpd
在这里插入图片描述
可能会出现这种情况 只需要执行一下systemctl daemon-reload(后台程序重新加载)就可以解决
在执行时就没有任何问题了
Linux下源码安装Apache详解_第1张图片

你可能感兴趣的:(linux)