容器编译安装httpd
[root@localhost ~]# docker pull centos //拉取centos镜像到本地仓库
Using default tag: latest
latest: Pulling from library/centos
a1d0c7532777: Pull complete
Digest: sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177
Status: Downloaded newer image for centos:latest
docker.io/library/centos:latest
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
httpd latest dabbfbe0c57b 7 months ago 144MB
centos latest 5d0da3dc9764 10 months ago 231MB
[root@localhost ~]# docker run -d -it --name httpd -p 80:80 -v /data:/data 5d0da3dc9764 /bin/bash //启动centos -it分配伪终端打开标准输入,-p把容器80端口映射到宿主机的80端口 -v把容器的目录挂载到宿主机的目录上,编译安装所需的包放到宿主机的目录里可以同步到容器里
8792d0bb22f78bec1e6013159fe31cab72afe942a40f25b73bd760a4cf29c059
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8792d0bb22f7 5d0da3dc9764 "/bin/bash" 5 seconds ago Up 5 seconds 0.0.0.0:80->80/tcp, :::80->80/tcp httpd
//下载编译安装httpd需要的源码包
[root@localhost ~]# cd /data
[root@localhost data]# wget https://mirrors.aliyun.com/apache/apr/apr-1.6.5.tar.gz
--2022-08-09 08:41:45-- https://mirrors.aliyun.com/apache/apr/apr-1.6.5.tar.gz
Resolving mirrors.aliyun.com (mirrors.aliyun.com)... 45.253.17.211, 45.253.17.215, 45.253.17.213, ...
Connecting to mirrors.aliyun.com (mirrors.aliyun.com)|45.253.17.211|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1073556 (1.0M) [application/octet-stream]
Saving to: ‘apr-1.6.5.tar.gz’
apr-1.6.5.tar.gz 100%[=============================>] 1.02M 149KB/s in 7.3s
2022-08-09 08:41:53 (145 KB/s) - ‘apr-1.6.5.tar.gz’ saved [1073556/1073556]
[root@localhost data]# wget https://mirrors.aliyun.com/apache/apr/apr-util-1.6.1.tar.gz
--2022-08-09 08:42:11-- https://mirrors.aliyun.com/apache/apr/apr-util-1.6.1.tar.gz
Resolving mirrors.aliyun.com (mirrors.aliyun.com)... 43.224.184.227, 45.253.17.211, 45.253.17.216, ...
Connecting to mirrors.aliyun.com (mirrors.aliyun.com)|43.224.184.227|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 554301 (541K) [application/octet-stream]
Saving to: ‘apr-util-1.6.1.tar.gz’
apr-util-1.6.1.tar.gz 100%[=============================>] 541.31K 142KB/s in 3.8s
2022-08-09 08:42:15 (142 KB/s) - ‘apr-util-1.6.1.tar.gz’ saved [554301/554301]
[root@localhost data]# wget https://mirrors.aliyun.com/apache/httpd/httpd-2.4.54.tar.bz2
--2022-08-09 08:42:27-- https://mirrors.aliyun.com/apache/httpd/httpd-2.4.54.tar.bz2
Resolving mirrors.aliyun.com (mirrors.aliyun.com)... 45.253.17.217, 45.253.17.213, 43.224.184.230, ...
Connecting to mirrors.aliyun.com (mirrors.aliyun.com)|45.253.17.217|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 7434530 (7.1M) [application/octet-stream]
Saving to: ‘httpd-2.4.54.tar.bz2’
httpd-2.4.54.tar.bz2 100%[=============================>] 7.09M 146KB/s in 51s
2022-08-09 08:43:17 (144 KB/s) - ‘httpd-2.4.54.tar.bz2’ saved [7434530/7434530]
[root@localhost data]# ls
apr-1.6.5.tar.gz apr-util-1.6.1.tar.gz httpd-2.4.54.tar.bz2
//进入httpd容器
[root@localhost data]# docker exec -it httpd /bin/bash
[root@8792d0bb22f7 /]# cd data/
[root@8792d0bb22f7 data]# ls
apr-1.6.5.tar.gz apr-util-1.6.1.tar.gz httpd-2.4.54.tar.bz2 //所有源码包
//官方源替换成阿里云源
[root@8792d0bb22f7 data]# cd /etc/yum.repos.d/
[root@8792d0bb22f7 yum.repos.d]# ls
CentOS-Linux-AppStream.repo CentOS-Linux-FastTrack.repo
CentOS-Linux-BaseOS.repo CentOS-Linux-HighAvailability.repo
CentOS-Linux-ContinuousRelease.repo CentOS-Linux-Media.repo
CentOS-Linux-Debuginfo.repo CentOS-Linux-Plus.repo
CentOS-Linux-Devel.repo CentOS-Linux-PowerTools.repo
CentOS-Linux-Extras.repo CentOS-Linux-Sources.repo
[root@8792d0bb22f7 yum.repos.d]# rm -rf *
[root@8792d0bb22f7 yum.repos.d]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2495 100 2495 0 0 9072 0 --:--:-- --:--:-- --:--:-- 9105
[root@8792d0bb22f7 yum.repos.d]# sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
//安装开发工具包和httpd依赖包 创建apache用户与组
[root@8792d0bb22f7 ~]# dnf -y groups mark install "Development Tools"
Failed to set locale, defaulting to C.UTF-8
CentOS-8.5.2111 - Base - mirrors.aliyun.com 285 kB/s | 4.6 MB 00:16
CentOS-8.5.2111 - Extras - mirrors.aliyun.com 35 kB/s | 10 kB 00:00
CentOS-8.5.2111 - AppStream - mirrors.aliyun.com 192 kB/s | 8.4 MB 00:45
Dependencies resolved.
==============================================================================================
Package Architecture Version Repository Size
==============================================================================================
Installing Groups:
Development Tools
Transaction Summary
==============================================================================================
Complete!
[root@8792d0bb22f7 ~]# dnf -y install openssl-devel pcre-devel expat-devel libtool libxml2-devel
Failed to set locale, defaulting to C.UTF-8
Last metadata expiration check: 0:01:08 ago on Tue Aug 9 00:49:07 2022.
Dependencies resolved.
==============================================================================================
Package Arch Version Repository Size
==============================================================================================
Installing:
expat-devel x86_64 2.2.5-4.el8 base 55 k
libtool x86_64 2.4.6-25.el8 AppStream 709 k
libxml2-devel x86_64 2.9.7-9.el8_4.2 AppStream 1.0 M
openssl-devel x86_64 1:1.1.1k-5.el8_5 base 2.3 M
pcre-devel x86_64 8.42-6.el8 base 551 k
Upgrading:
glibc x86_64 2.28-164.el8 base 3.6 M
glibc-common x86_64 2.28-164.el8 base 1.3 M
glibc-minimal-langpack x86_64 2.28-164.el8 base 58 k
keyutils-libs x86_64 1.5.10-9.el8 base 34 k
krb5-libs x86_64 1.18.2-14.el8 base 840 k
libcom_err x86_64 1.45.6-2.el8 base 49 k
libgcc x86_64 8.5.0-4.el8_5 base 79 k
libsepol x86_64 2.9-3.el8 base 340 k
libxcrypt x86_64 4.1.1-6.el8 base 73 k
libxml2 x86_64 2.9.7-9.el8_4.2 base 696 k
ncurses-base noarch 6.1-9.20180224.el8 base 81 k
ncurses-libs x86_64 6.1-9.20180224.el8 base 334 k
openssl-libs x86_64 1:1.1.1k-5.el8_5 base 1.5 M
pcre x86_64 8.42-6.el8 base 211 k
Installing dependencies:
autoconf noarch 2.69-29.el8 AppStream 710 k
automake noarch 1.16.1-7.el8 AppStream 713 k
cmake-filesystem x86_64 3.20.2-4.el8 AppStream 44 k
cpp x86_64 8.5.0-4.el8_5 AppStream 10 M
......
[root@8792d0bb22f7 ~]# useradd -Mrs /bin/nologin apache
[root@8792d0bb22f7 ~]# id apache
uid=998(apache) gid=996(apache) groups=996(apache)
//把httpd、apr、apr-util包解压到、usr/local/src/下
[root@8792d0bb22f7 ~]# tar -xf /data/apr-1.6.5.tar.gz -C /usr/local/src/
[root@8792d0bb22f7 ~]# tar -xf /data/apr-util-1.6.1.tar.gz -C /usr/local/src/
[root@8792d0bb22f7 ~]# tar -xf /data/httpd-2.4.54.tar.bz2 -C /usr/local/src/
//编译安装apr
[root@8792d0bb22f7 apr-1.6.5]# vi configure
# $RM "$cfgfile" //注释掉这行
[root@8792d0bb22f7 apr-1.6.5]# ./configure --prefix=/usr/local/apr
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
Configuring APR library
Platform: x86_64-pc-linux-gnu
checking for working mkdir -p... yes
APR Version: 1.6.5
checking for chosen layout... apr
......
[root@8792d0bb22f7 apr-1.6.5]# make && make install
......
//编译安装apr-util
[root@8792d0bb22f7 apr-1.6.5]# cd /usr/local/src/apr-util-1.6.1/
[root@8792d0bb22f7 apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
......
[root@8792d0bb22f7 apr-util-1.6.1]# make && make install
......
//编译安装httpd
[root@8792d0bb22f7 httpd-2.4.54]# ./configure --prefix=/usr/local/apache --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr -with-apr-util=/usr/local/apr-util/ --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork
......
[root@8792d0bb22f7 httpd-2.4.54]# make && make install
......
//配置httpd全局变量 启动服务
[root@8792d0bb22f7 httpd-2.4.54]# cd /usr/local/apache/
[root@8792d0bb22f7 apache]# ls
bin build cgi-bin conf error htdocs icons include logs man manual modules
[root@8792d0bb22f7 apache]# echo 'export PATH=$PATH:/usr/local/apache/bin/' >> /etc/profile.d/apache.sh
[root@8792d0bb22f7 apache]# source /etc/profile.d/apache.sh
[root@8792d0bb22f7 apache]# apachectl start
[root@8792d0bb22f7 apache]# ss -anlt
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:80 0.0.0.0:*
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/b6394097202c04d04d93da25b03a6304.png#pic_center)