lamp

本文介绍了LAMP架构,包括Linux、Apache、MySQL/MariaDB和PHP的组合,以及它们如何构建强大的Web应用程序平台。详细阐述了Web服务器的工作流程,包括静态和动态资源的区别,以及CGI与FastCGI的概念。接着,讨论了Apache与PHP结合的三种方式,重点讲解了FastCGI的运行机制。最后,详细展示了如何一步步构建LAMP平台,包括安装和配置Apache、MySQL和PHP-FPM。
摘要由CSDN通过智能技术生成

lamp

  1. lamp简介
  2. web服务器工作流程
    2.1 cgi与fastcgi
    2.2 httpd与php结合的方式
    2.3 web工作流程
  3. lamp平台构建
    3.1 安装httpd
    3.2 安装mysql
    3.3 安装php
    3.4 配置apache
    3.4.1 启用代理模块
    3.4.2 配置虚拟主机
    3.5 验证

1.lamp简介

有了前面学习的知识的铺垫,今天可以来学习下第一个常用的web架构了。

所谓lamp,其实就是由Linux+Apache+Mysql/MariaDB+Php/Perl/Python的一组动态网站或者服务器的开源软件,除Linux外其它各部件本身都是各自独立的程序,但是因为经常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。

LAMP指的是Linux(操作系统)、Apache(HTTP服务器)、MySQL(也指MariaDB,数据库软件)和PHP(有时也是指Perl或Python)的第一个字母,一般用来建立web应用平台。

  1. web服务器工作流程

在说lamp架构平台的搭建前,我们先来了解下什么是CGI,什么是FastCGI,什么是…

web服务器的资源分为两种,静态资源和动态资源

  • 静态资源就是指静态内容,客户端从服务器获得的资源的表现形式与原文件相同。可以简单的理解为就是直接存储于文件系统中的资源
  • 动态资源则通常是程序文件,需要在服务器执行之后,将执行的结果返回给客户端

2.1 cgi与fastcgi

CGI(Common Gateway Interface,通用网关接口),CGI是外部应用程序(CGI程序)与WEB服务器之间的接口标准,是在CGI程序和Web服务器之间传递信息的过程。CGI规范允许Web服务器执行外部程序,并将它们的输出发送给Web浏览器,CGI将web的一组简单的静态超媒体文档变成一个完整的新的交互式媒体。

FastCGI(Fast Common Gateway Interface)是CGI的改良版,CGI是通过启用一个解释器进程来处理每个请求,耗时且耗资源,而FastCGI则是通过master-worker形式来处理每个请求,即启动一个master主进程,然后根据配置启动几个worker进程,当请求进来时,master会从worker进程中选择一个去处理请求,这样就避免了重复的生成和杀死进程带来的频繁cpu上下文切换而导致耗时

2.2 httpd与php结合的方式

httpd与php结合的方式有以下三种:

  • modules:php将以httpd的扩展模块形式存在,需要加载动态资源时,httpd可以直接通过php模块来加工资源并返回给客户端
    httpd prefork:libphp5.so(多进程模型的php)
    httpd event or worker:libphp5-zts.so(线程模型的php)
  • CGI:httpd需要加载动态资源时,通过CGI与php解释器联系,获得php执行的结果,此时httpd负责与php连接的建立和断开等
  • FastCGI:利用php-fpm机制,启动为服务进程,php自行运行为一个服务,https通过socket与php通信
    较于CGI方式,FastCGI更为常用,很少有人使用CGI方式来加载动态资源

2.3web工作流程

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

  1. lamp平台构建
    环境说明:
系统平台 IP 需要安装的服务
centos7 redhat7 172. 16.195.125 httpd-2.4
centos7 redhat7 172.16.195.126 mysql-5.7
centos7 redhat7 172.16.195.127 php

lamp平台软件安装次序:

httpd --> mysql --> php

安装httpd
安装开发工具包

[root@apache ~]# yum groups mark install 'Development Tools'
已加载插件:product-id, search-disabled-repos, subscription-manager   

创建apache服务的用户和组

[root@apache ~]# groupadd -r apache
[root@apache ~]# useradd -r -M -s /sbin/nologin -g apache apache

安装依赖包

   [root@apache ~]# yum -y install openssl-devel pcre-devel expat-devel libtool
已加载插件:product-id, search-disabled-repos, subscription
  • 6
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值