标签:web 存储 httpd f8e7b8dd1e9e 站点 -- usr apache root
下载所需安装包
//创建一个目录,用于存放安装包
[root@localhost ~]# mkdir /package
[root@localhost ~]# cd /package/
[root@localhost package]# wget https://downloads.apache.org/apr/apr-1.7.0.tar.gz
[root@localhost package]# wget https://downloads.apache.org/apr/apr-util-1.6.1.tar.gz
[root@localhost package]# wget https://downloads.apache.org/httpd/httpd-2.4.54.tar.gz
[root@localhost package]# ls
apr-1.7.0.tar.gz apr-util-1.6.1.tar.gz httpd-2.4.54.tar.gz
基于centos镜像创建一个容器
//创建容器并将/package目录挂载到容器上的/package作为存储卷使用
[root@localhost ~]# docker run -it --name httpd -v /package/:/package centos
//配置网络仓库
[root@f8e7b8dd1e9e /]# 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 7231 0 --:--:-- --:--:-- --:--:-- 7231
[root@f8e7b8dd1e9e /]# sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
[root@f8e7b8dd1e9e /]# dnf clean all
[root@f8e7b8dd1e9e /]# dnf list all
//准备依赖环境和编译环境
[root@f8e7b8dd1e9e /]# dnf -y install openssl-devel pcre-devel expat-devel libtool gcc gcc-c++ vim make wget
编译apr
[root@f8e7b8dd1e9e /]# cd /package/
[root@f8e7b8dd1e9e package]# tar xf apr-1.7.0.tar.gz
[root@f8e7b8dd1e9e package]# cd apr-1.7.0
[root@f8e7b8dd1e9e apr-1.7.0]# vim configure
cfgfile=${ofile}T
trap "$RM \"$cfgfile\"; exit 1" 1 2 15
# $RM "$cfgfile" //删除或注释此行
[root@f8e7b8dd1e9e apr-1.7.0]# ./configure --prefix=/usr/local/apr
[root@f8e7b8dd1e9e apr-1.7.0]# make && make install
编译apr-util
[root@f8e7b8dd1e9e package]# tar xf apr-util-1.6.1.tar.gz
[root@f8e7b8dd1e9e package]# cd apr-util-1.6.1/
[root@f8e7b8dd1e9e apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[root@f8e7b8dd1e9e apr-util-1.6.1]# make && make install
编译httpd
[root@f8e7b8dd1e9e package]# tar xf httpd-2.4.54.tar.gz
[root@f8e7b8dd1e9e package]# cd httpd-2.4.54/
[root@f8e7b8dd1e9e package]# tar xf httpd-2.4.54.tar.gz
[root@f8e7b8dd1e9e package]# cd 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@f8e7b8dd1e9e httpd-2.4.54]# make && make install
//配置全局环境变量
[root@f8e7b8dd1e9e httpd-2.4.54]# cd /usr/local/apache/
[root@f8e7b8dd1e9e apache]# ls
bin build cgi-bin conf error htdocs icons include logs man manual modules
[root@f8e7b8dd1e9e apache]# echo "export PATH=$PATH:/usr/local/apache/bin" > /etc/profile.d/httpd.sh
[root@f8e7b8dd1e9e apache]# source /etc/profile.d/httpd.sh
[root@f8e7b8dd1e9e apache]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/apache/bin
//配置头文件
[root@f8e7b8dd1e9e apache]# ln -sv /usr/local/apache/include/ /usr/include/httpd
'/usr/include/httpd' -> '/usr/local/apache/include/'
[root@f8e7b8dd1e9e apache]# ls -l /usr/include/httpd
lrwxrwxrwx. 1 root root 26 Aug 10 14:54 /usr/include/httpd -> /usr/local/apache/include/
//去掉主配置文件里'#ServerName'的注释
[root@f8e7b8dd1e9e apache]# sed -i '/#ServerName/s/#//g' /usr/local/apache/conf/httpd.conf
//启动httpd
[root@f8e7b8dd1e9e apache]# apachectl
[root@f8e7b8dd1e9e 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:*
//关闭httpd
[root@f8e7b8dd1e9e apache]# apachectl stop
[root@f8e7b8dd1e9e apache]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
//编写一个脚本用于在容器启动时启动httpd
[root@f8e7b8dd1e9e apache]# vim /usr/bin/httpd-start.sh
#!/bin/bash
/usr/local/apache/bin/apachectl && /usr/bin/tail -f /usr/local/apache/logs/access_log
[root@f8e7b8dd1e9e apache]# chmod +x /usr/bin/httpd-start.sh
将httpd容器提交为镜像
[root@localhost ~]# docker commit -c 'CMD ["httpd-start.sh"]' -p httpd ziczhou/httpd:v1.2
sha256:d12b6463ed108bcc35f598951c6ddf339cf67bba3f15251b6fa9c2067f58a9d3
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ziczhou/httpd v1.2 d12b6463ed10 4 seconds ago 601MB
ziczhou/httpd v1.1 c1eb5e6a1d69 31 hours ago 745MB
busybox latest beae173ccac6 7 months ago 1.24MB
httpd latest dabbfbe0c57b 7 months ago 144MB
centos latest 5d0da3dc9764 10 months ago 231MB
利用上面提交的镜像运行一个容器
//创建/html目录,并将下载的站点源码解压到此目录
[root@localhost ~]# mkdir /html
[root@localhost ~]# mv html533.zip /html/
[root@localhost ~]# cd /html/
[root@localhost html]# unzip html533.zip
[root@localhost html]# ls
css html533.zip images index.html js
[root@localhost html]# rm -f html533.zip
//利用ziczhou/httpd:v1.2镜像创建一个容器,将/html作为存储卷挂载到容器的/usr/local/apache/htdocs目录,并且将容器的80端口映射到docker主机的80端口
[root@localhost ~]# docker run -itd --name web -p 80:80 -v /html/:/usr/local/apache/htdocs/ ziczhou/httpd:v1.2
b908ffd6bf4c42f07c1262eb2d2721bd588c40be5249ff33e5156a0f126f7f07
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b908ffd6bf4c ziczhou/httpd:v1.2 "httpd-start.sh" 4 seconds ago Up 2 seconds 0.0.0.0:80->80/tcp, :::80->80/tcp web
f8e7b8dd1e9e centos "/bin/bash" 2 hours ago Up About an hour httpd
[root@localhost ~]# docker port web
80/tcp -> 0.0.0.0:80
80/tcp -> :::80
在浏览器进行测试,输入192.168.169.139
标签:web,存储,httpd,f8e7b8dd1e9e,站点,--,usr,apache,root 来源: https://www.cnblogs.com/zicnotes/p/16575414.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。