小知识:企业级使用LAMP源码安装教程

LAMP架构

(同一台服务器上搭建)

1.lamp介绍

lamp,由linux apache mysql/mariadb php/perl/python的一组动态网站或者服务器的开源软件,除linux外其它各部分都是各种独立的程序,经常一起使用,拥有很强的兼容性,共同组成一个强大的web应用程序平台。

Linux(操作系统),Apache(HTTP服务器),Mysql(mariadb,数据库软件),PHP(perl或python),建立web应用平台

2.web服务工作流程

web服务器的资源分为俩种:静态和动态资源

静态资源:静态内容,客户端从服务器获得的资源的表达形式与源文件相同。就是直接储存于文件系统中的资源(.mp3/.mp4/.jpg/.gif)

动态资源:通常是程序文件,需要在服务器执行之后,将执行的结构返回给客户端(.php/.asp/.py/.net)

web服务器如何处理客户端的请求

%小知识:企业级使用LAMP源码安装教程-猿站网-插图

阶段1显示httpd服务器(apache)和php服务器通过fastCGI协议进行通信,且php作为独立的服务进程运行。

阶段2显示php服务器和mysql服务器通过mysql协议进行通信,php与mysql本身没有联系,但是由php语言写的程序可以与mysql进行数据交互,同理python写的程序和perl也可以和MySQL数据库进行数据交互。

2.1cgi和fastcgi

CGI(common gateway lnterface,通用网关接口)

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.2httpd与php结合

php与httpd三种方式:

方式一: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通信

FastCGI最常用,很少人使用CGI方式来加载动态资源

2.3web工作流程

客户端通过网站协议请求web服务器资源

web服务器收到请求后,判断客户端请求的资源是静态还是动态资源

静态资源的话,则直接从本地文件系统取之返回给客户端

动态资源的话,通过FastCGI协议与php服务器联系,通过CGI程序的master进程调度worker进程来执行程序以获得客户端请求的动态资源,并将执行的结果通过FastCGI协议返回给网站服务器,网站服务器收到php的执行结果后将其封装为http响应报文响应给客户端,在执行程序获取动态资源时若需要获得数据库中的资源时,由php服务器通过mysql协议与Mysql(MariaDB)服务器交互,获得后返回给httpd,httpd将从php服务器收到的执行结果封装成http响应报文响应给客户端。

3.LAMP平台构建

环境:

系统平台

ip

安装的服务

centos/redhat

192.168.136.145

httpd-2.4/mysql-5.7/php/php-mysql

lamp安装的顺序:

httpd

声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:看看程序员如何被 Docker 日志坑惨了

2023-3-18 13:49:14

建站知识

小知识:apache无法启动的可能原因分析及对策

2023-3-18 14:04:06

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索