ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

存储卷部署web站点

2022-08-11 11:34:54  阅读:142  来源: 互联网

标签: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. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有