[root@Soap ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
busybox latest beae173ccac6 7 months ago 1.24MB
httpd latest dabbfbe0c57b 7 months ago 144MB
centos latest 5d0da3dc9764 10 months ago 231MB
用centos生成一个容器进去
[root@Soap ~]# docker run -d -it --name httpd -p 80:80 -v /data:/data 5d0da3dc9764 /bin/bash
6eb48872f0da2bbc39f099645ef9127c8f9d42fc06f4d20c5e765d4be584fa28
[root@Soap ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6eb48872f0da 5d0da3dc9764 "/bin/bash" 17 seconds ago Up 15 seconds 0.0.0.0:80->80/tcp, :::80->80/tcp httpd
b9be2d1f1e95 httpd "httpd-foreground" 26 hours ago Up 26 hours 80/tcp lucid_blackwell
在容器中阿里云的yum源和epel源,下载apache的包,并复制到容器中
[root@Soap ~]# cd /data/
[root@Soap data]# dnf -y install wget
[root@Soap data]# wget https://mirrors.aliyun.com/apache/apr/apr-1.6.5.tar.gz
--2022-08-08 22:17:06-- https://mirrors.aliyun.com/apache/apr/apr-1.6.5.tar.gz
Resolving mirrors.aliyun.com (mirrors.aliyun.com)... 58.49.248.226, 180.101.197.238, 180.101.199.242, ...
Connecting to mirrors.aliyun.com (mirrors.aliyun.com)|58.49.248.226|: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 --.-KB/s in 0.07s
2022-08-08 22:17:06 (13.9 MB/s) - ‘apr-1.6.5.tar.gz’ saved [1073556/1073556]
[root@Soap data]# wget https://mirrors.aliyun.com/apache/apr/apr-util-1.6.1.tar.gz
--2022-08-08 22:21:32-- https://mirrors.aliyun.com/apache/apr/apr-util-1.6.1.tar.gz
Resolving mirrors.aliyun.com (mirrors.aliyun.com)... 180.101.199.240, 180.101.197.240, 58.42.55.241, ...
Connecting to mirrors.aliyun.com (mirrors.aliyun.com)|180.101.199.240|: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 --.-KB/s in 0.1s
2022-08-08 22:21:32 (4.67 MB/s) - ‘apr-util-1.6.1.tar.gz’ saved [554301/554301]
[root@Soap data]# wget https://mirrors.aliyun.com/apache/httpd/httpd-2.4.54.tar.bz2
--2022-08-08 22:22:12-- https://mirrors.aliyun.com/apache/httpd/httpd-2.4.54.tar.bz2
Resolving mirrors.aliyun.com (mirrors.aliyun.com)... 180.101.199.240, 180.101.197.240, 58.42.55.241, ...
Connecting to mirrors.aliyun.com (mirrors.aliyun.com)|180.101.199.240|: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 9.61MB/s in 0.7s
2022-08-08 22:22:12 (9.61 MB/s) - ‘httpd-2.4.54.tar.bz2’ saved [7434530/7434530]
[root@Soap data]# ls
apr-1.6.5.tar.gz apr-util-1.6.1.tar.gz httpd-2.4.54.tar.bz2
[root@Soap data]# docker exec -it httpd /bin/bash
[root@6eb48872f0da /]# cd data/
[root@6eb48872f0da data]# ls
apr-1.6.5.tar.gz apr-util-1.6.1.tar.gz httpd-2.4.54.tar.bz2
在容器中阿里云的yum源和epel源
[root@6eb48872f0da data]# cd /etc/yum.repos.d/
[root@6eb48872f0da 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@6eb48872f0da yum.repos.d]# rm -rf *
[root@6eb48872f0da 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 13633 0 --:--:-- --:--:-- --:--:-- 13633
[root@6eb48872f0da yum.repos.d]# sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
[root@6eb48872f0da yum.repos.d]# cd
[root@6eb48872f0da ~]# dnf -y groups mark install "Development Tools"
Failed to set locale, defaulting to C.UTF-8
CentOS-8.5.2111 - Base - mirrors.aliyun.com 9.7 MB/s | 4.6 MB 00:00
CentOS-8.5.2111 - Extras - mirrors.aliyun.com 67 kB/s | 10 kB 00:00
CentOS-8.5.2111 - AppStream - mirrors.aliyun.com 9.4 MB/s | 8.4 MB 00:00
Dependencies resolved.
========================================================================================
Package Architecture Version Repository Size
========================================================================================
Installing Groups:
Development Tools
Transaction Summary
========================================================================================
Complete!
[root@6eb48872f0da ~]# 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:00:18 ago on Mon Aug 8 14:27:03 2022.
Dependencies resolved.
========================================================================================
Package Arch Version Repo 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
......
pkgconf-m4-1.4.2-1.el8.noarch
pkgconf-pkg-config-1.4.2-1.el8.x86_64
xz-devel-5.2.4-3.el8.x86_64
zlib-devel-1.2.11-17.el8.x86_64
Complete!
解压并编译安装httpd,apr,apr-util
[root@6eb48872f0da ~]# useradd -Mrs /bin/nologin apache
[root@6eb48872f0da ~]# id apache
uid=998(apache) gid=996(apache) groups=996(apache)
[root@6eb48872f0da ~]# tar -xf /data/apr-1.6.5.tar.gz -C /usr/local/src/
[root@6eb48872f0da ~]# tar -xf /data/apr-util-1.6.1.tar.gz -C /usr/local/src/
[root@6eb48872f0da ~]# tar -xf /data/httpd-2.4.54.tar.bz2 -C /usr/local/src/
[root@6eb48872f0da ~]# cd /usr/local/src/apr-1.6.5/
[root@6eb48872f0da apr-1.6.5]# vi configure
# $RM "$cfgfile"
[root@6eb48872f0da apr-1.6.5]# ./configure --prefix=/usr/local/apr
......
config.status: creating apr-1-config
config.status: creating apr.pc
config.status: creating test/Makefile
config.status: creating test/internal/Makefile
config.status: creating include/arch/unix/apr_private.h
config.status: executing libtool commands
config.status: executing default commands
[root@6eb48872f0da apr-1.6.5]# make && make install
......
/usr/bin/install -c -m 755 /usr/local/src/apr-1.6.5/build/mkdir.sh /usr/local/apr/build-1
for f in make_exports.awk make_var_export.awk; do \
/usr/bin/install -c -m 644 /usr/local/src/apr-1.6.5/build/${f} /usr/local/apr/build-1; \
done
/usr/bin/install -c -m 644 build/apr_rules.out /usr/local/apr/build-1/apr_rules.mk
/usr/bin/install -c -m 644 /usr/local/src/apr-1.6.5/build/apr_common.m4 /usr/local/apr/build-1
/usr/bin/install -c -m 644 /usr/local/src/apr-1.6.5/build/find_apr.m4 /usr/local/apr/build-1
/usr/bin/install -c -m 755 apr-config.out /usr/local/apr/bin/apr-1-config
[root@6eb48872f0da apr-1.6.5]# cd /usr/local/src/apr-util-1.6.1/
[root@6eb48872f0da apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
......
config.status: creating include/apu.h
config.status: creating include/apu_want.h
config.status: creating test/Makefile
config.status: creating include/private/apu_config.h
config.status: executing default commands
[root@6eb48872f0da apr-util-1.6.1]# make && make install
......
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
/usr/bin/install -c -m 644 aprutil.exp /usr/local/apr-util/lib
/usr/bin/install -c -m 755 apu-config.out /usr/local/apr-util/bin/apu-1-config
[root@6eb48872f0da apr-util-1.6.1]# cd /usr/local/src/httpd-2.4.54/
[root@6eb48872f0da 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
......
config.status: creating build/config_vars.sh
config.status: creating include/ap_config_auto.h
config.status: executing default commands
configure: summary of build options:
Server Version: 2.4.54
Install prefix: /usr/local/apache
C compiler: gcc
CFLAGS: -g -O2 -pthread
CPPFLAGS: -DLINUX -D_REENTRANT -D_GNU_SOURCE
LDFLAGS:
LIBS:
C preprocessor: gcc -E
[root@6eb48872f0da httpd-2.4.54]#
make && make install
......
Installing build system files
mkdir /usr/local/apache/build
Installing man pages and online manual
mkdir /usr/local/apache/man
mkdir /usr/local/apache/man/man1
mkdir /usr/local/apache/man/man8
mkdir /usr/local/apache/manual
make[1]: Leaving directory '/usr/local/src/httpd-2.4.54'
[root@6eb48872f0da httpd-2.4.54]# cd /usr/local/apache/
[root@6eb48872f0da apache]# ls
bin build cgi-bin conf error htdocs icons include logs man manual modules
配置环境变量和创建头文件
[root@6eb48872f0da apache]# echo 'export PATH=$PATH:/usr/local/apache/bin/' >> /etc/profile.d/apache.sh
[root@6eb48872f0da apache]# source /etc/profile.d/apache.sh
[root@6eb48872f0da apache]# apachectl start
[root@6eb48872f0da apache]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:80 0.0.0.0:*
[root@6eb48872f0da apache]#
