Lamp架构搭建以及docker

本文详细介绍了LAMP架构的搭建过程,包括安装httpd、mysql和php,以及配置apache和php-fpm。同时,文章也涵盖了Docker容器技术的基础知识,探讨了传统虚拟化与容器的区别。
摘要由CSDN通过智能技术生成

Lamp架构搭建以及docker


1. web工作流程

通过上面的图说明一下web的工作流程:

  • 客户端通过http协议请求web服务器资源
  • web服务器收到请求后判断客户端请求的资源是静态资源或是动态资源
    • 若是静态资源则直接从本地文件系统取之返回给客户端。
    • 否则若为动态资源则通过FastCGI协议与php服务器联系,通过CGI程序的master进程调度worker进程来执行程序以获得客户端请求的动态资源,并将执行的结果通过FastCGI协议返回给httpd服务器,httpd服务器收到php的执行结果后将其封装为http响应报文响应给客户端。在执行程序获取动态资源时若需要获得数据库中的资源时,由Php服务器通过mysql协议与MySQL/MariaDB服务器交互,取之而后返回给httpd,httpd将从php服务器收到的执行结果封装成http响应报文响应给客户端。

2. lamp平台构建

环境说明:

系统平台 IP 需要安装的服务
centos7
redhat7
172.16.12.128 httpd-2.4
mysql-5.7
php
php-mysql

lamp平台软件安装次序:

httpd --> mysql --> php

注意:php要求httpd使用prefork MPM

2.1 安装httpd

//配置阿里云网络仓库

[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ls
CentOS-Stream-AppStream.repo  CentOS-Stream-Debuginfo.repo  CentOS-Stream-HighAvailability.repo  CentOS-Stream-PowerTools.repo
CentOS-Stream-BaseOS.repo     CentOS-Stream-Extras.repo     CentOS-Stream-Media.repo             CentOS-Stream-RealTime.repo
[root@localhost yum.repos.d]# rm -rf *
[root@localhost yum.repos.d]# ls
[root@localhost 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   7295      0 --:--:-- --:--:-- --:--:--  7295
[root@localhost yum.repos.d]# ls
CentOS-Base.repo
[root@localhost yum.repos.d]# sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
[root@localhost yum.repos.d]# cd
[root@localhost ~]# yum install -y https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm
CentOS-8.5.2111 - Base - mirrors.aliyun.com                                                                                                             497 kB/s | 4.6 MB     00:09    
CentOS-8.5.2111 - Extras - mirrors.aliyun.com                                                                                                            27 kB/s |  10 kB     00:00    
CentOS-8.5.2111 - AppStream - mirrors.aliyun.com                                                                                                        333 kB/s | 8.4 MB     00:25    
epel-release-latest-8.noarch.rpm                                                                                                                         57 kB/s |  24 kB     00:00    
Dependencies resolved.
......
Complete!
[root@localhost ~]# sed -i 's|^#baseurl=https://download.example/pub|baseurl=https://mirrors.aliyun.com|' /etc/yum.repos.d/epel*
[root@localhost ~]# sed -i 's|^metalink|#metalink|' /etc/yum.repos.d/epel*
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ls
CentOS-Base.repo  epel-modular.repo  epel.repo  epel-testing-modular.repo  epel-testing.repo

//安装开发工具包

[root@localhost yum.repos.d]# cd
[root@localhost ~]# yum groups mark install 'Development Tools'
......
Complete!

//创建apache服务的用户和组

[root@localhost ~]# useradd -r -M -s /sbin/nologin  apache
[root@localhost ~]# id apache
uid=994(apache) gid=991(apache) groups=991(apache) 

//安装依赖包

[root@localhost ~]# yum -y install openssl-devel pcre-devel expat-devel libtool gcc gcc-c++
Last metadata expiration check: 0:07:03 ago on Tue 02 Aug 2022 04:34:46 PM CST.
Module yaml error: Unexpected key in data: static_context [line 9 col 3]
......
Complete!

//下载和安装apr和apr-util以及httpd

[root@localhost ~]# cd /usr/src/
[root@localhost src]# wget https://downloads.apache.org/apr/apr-1.6.5.tar.bz2

[root@localhost src]# wget https://downloads.apache.org/apr/apr-util-1.6.1.tar.bz2

[root@localhost src]# wget https://downloads.apache.org/httpd/httpd-2.4.54.tar.bz2

[root@localhost src]# ls
apr-1.6.5.tar.bz2  apr-util-1.6.1.tar.bz2  debug  httpd-2.4.54.tar.bz2  kernels
[root@localhost src]# dnf install bzip2
......
Complete!
[root@localhost src]# tar xf apr-1.6.5.tar.bz2
[root@localhost src]# ls
apr-1.6.5  apr-1.6.5.tar.bz2  apr-util-1.6.1.tar.bz2  debug  httpd-2.4.54.tar.bz2  kernels
[root@localhost src]# cd apr-1.6.5
[root@localhost apr-1.6.5]# vim configure
    cfgfile="${ofile}T"
    trap "$RM \"$cfgfile\"; exit 1" 1 2 15
    # $RM "$cfgfile"        //将此行加上注释,或者删除此行

[root@localhost apr-1.6.5]# ./configure --prefix=/usr/local/apr
配置过程略...
[root@localhost apr-1.6.5]# make && make install
编译安装过程略...

[root@localhost apr-1.6.5]# cd ..
[root@localhost src]# tar xf apr-util-1.6.1.tar.bz2
[root@localhost src]# ls
apr-1.6.5  apr-1.6.5.tar.bz2  apr-util-1.6.1  apr-util-1.6.1.tar.bz2  debug  httpd-2.4.54.tar.bz2  kernels
[root@localhost src]# cd apr-util-1.6.1
[root@localhost apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
配置过程略...
[root@localhost apr-util-1.6.1]# make && make install
编译安装过程略...
[root@localhost apr-util-1.6.1]# cd
[root@localhost ~]# ls /usr/local/
apr  apr-util  bin  etc  games  include  lib  lib64  libexec  sbin  share  src

//编译安装httpd

[root@localhost ~]# cd /usr/src/
[root@localhost src]# ls
apr-1.6.5  apr-1.6.5.tar.bz2  apr-util-1.6.1  apr-util-1.6.1.tar.bz2  debug  httpd-2.4.54.tar.bz2  kernels
[root@localhost src]# tar xf httpd-2.4.54.tar.bz2
[root@localhost src]# ls
apr-1.6.5  apr-1.6.5.tar.bz2  apr-util-1.6.1  apr-util-1.6.1.tar.bz2  debug  httpd-2.4.54  httpd-2.4.54.tar.bz2  kernels
[root@localhost src]# cd httpd-2.4.54
[root@localhost src]# ./configure --prefix=/usr/local/apache \
--sysconfdir=/etc/httpd24 \
--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@localhost httpd-2.4.38]# make && make install
编译安装过程略...

//安装后配置

[root@localhost httpd-2.4.54]# cd /usr/local/
[root@localhost local]# ls
apache  apr  apr-util  bin  etc  games  include  lib  lib64  libexec  sbin  share  src
[root@localhost local]# cd apache
[root@localhost apache]# ls
bin  build  cgi-bin  error  htdocs  icons  include  logs  man  manual  modules
[root@localhost apache]# echo 'export PATH=$PATH:/usr/local/apache/bin' > /etc/profile.d/httpd.sh
[root@localhost apache]# source /etc/profile.d/httpd.sh
[root@localhost apache]# which apachectl
/usr/local/apache/bin/apachectl
[root@localhost apache]# ln -s /usr/local/apache/include/  /usr/include/httpd
[root@localhost apache]# vim /etc/man_db.conf
······
MANDATORY_MANPATH                       /usr/man
MANDATORY_MANPATH                    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker搭建LAMP架构的私人论坛是可行的。LAMP架构是指Linux、Apache、MySQL和PHP的组合,它们可以一起用于构建动态网站和应用程序。 下面是一种可能的步骤来搭建LAMP架构的私人论坛: 1. 安装Docker:首先,确保你的系统上已经安装了Docker。你可以从Docker官方网站上下载并按照指南进行安装。 2. 创建Docker容器:使用Docker命令或者Docker Compose创建一个包含Apache、MySQL和PHP的容器。你可以使用现有的Docker镜像,也可以编写自己的Dockerfile来构建镜像。 3. 配置Apache服务器:在Apache容器中,你需要配置虚拟主机和网站目录。你可以将论坛的代码放在网站目录中,并配置虚拟主机以将请求转发到正确的目录。 4. 安装和配置MySQL:在MySQL容器中,你需要安装MySQL数据库,并创建一个新的数据库和用户供论坛使用。确保设置安全的密码,并将数据库凭据保存在安全的地方。 5. 安装和配置PHP:在PHP容器中,你需要安装所需的PHP扩展和依赖项。这些扩展可能包括MySQL扩展、会话管理扩展等。确保PHP配置与论坛的要求相匹配。 6. 部署论坛代码:将论坛的代码复制到Apache容器中的网站目录中。确保代码和文件权限正确设置,并根据论坛的安装指南进行配置。 7. 启动容器:使用Docker命令或者Docker Compose启动容器。确保容器之间的网络连接正确配置,并且容器可以通过指定的端口访问。 8. 测试论坛:通过浏览器访问论坛的URL,确保论坛能够正常运行。如果有任何错误或问题,可以查看容器的日志以获取更多信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值