首页 > 其他 > 详细

LAMP

时间:2015-10-25 19:27:17      阅读:276      评论:0      收藏:0      [点我收藏+]

lamp组合一种是基于linux平台的web应用部署:    
       
    L: Linux, A: apache (httpd), M: MySQL (MariaDB), P (php, python, perl, ruby)

    工作流程:

web进程接受客户端请求,客户端请求的资源有动态的也有静态,静态资源请求web进程直接从磁盘读取,动态资源请求需要服务器提供一个PHP语言的环境进行运行,运行过程可能需要读取数据(由数据库提供数据提高效率),将动态资源运行的结果给web进程,由web进程响应给用户。


为了提高响应速度,可将web进程,php环境,数据库分别部署在不同的服务器上。(这就是fcgi模式)

     早期有客户端自行处理动态资源,获得运行结果(如浏览器的插件,flash等)


关于动态资源请求的工作图

技术分享

 

CGI协议:Common Gateway Interface,通用网关接口  
        简化版的http协议,用于web服务器与应用程序进程通信;(在lamp体系中httpd进程调动php语言等其他的进程)httpd需要CGI模块才能成为cgi协议的客户端和其他应用程序进程交流


        httpd进程还将URL转换成本地文件路径发给编程语言环境进程,由该进程自己调用文件 

  

        PHP语言有一套自己完整的解释器,无需依赖linux操作系统的特别命令


Database:

        PHP应用程序直接读取磁盘上的数据(文件形式存储的数据),影响应用进程本身运行,将功能下放交给数据库读取磁盘上的数据,数据库进程读取并组织成结构完后再传递给PHP应用程序提高应用程序计算运行的效率。

        数据库为PHP等应用程序提供数据库接口(API),在应用程序的代码中调用此接口。


a与p的结合方式有三种:

  1. Module:将应用程序作为第三方模块,加载在httpd的进程中

  2. cgi:web服务器根据客户端的动态请求开启一个子进程,该子进程就是PHP负责运算,运算完成后由httpd进程销毁

  3. fcgi:应用程序自己起一个进程,监听着与httpd进程的请求(基于套接字可以跨主机),工作模式类似httpd的prework。此种方法可以完全把应用程序独立成服务器。

    请求流程:

        Client --> (http) --> httpd --> (somefile.php, cgi) --> application server --> (mysql) --> mysql server

 

php程序与MySQL如何交互:  
        解释器无须与MySQL对接, 需要处理数据其实是解释器上运行的程序;    
        存储系统有多种:    
            NoSQL: redis, mongodb等等    
            SQL: MariaDB, MySQL, Oracle等    
            NewSQL:    
            分布式存储:    
        程序与存储系统交互需要通过专用的接口(驱动)进行


CentOS 6.6 AMP(apache,mysql,php)  
        需要安装基本程序包:    
            httpd, php, php-mysql, mysql-server    
        rpm包安装的PHP为模块可能被httpd进程所加载,PHP可以嵌入html代码中 web服务器只会将PHP封装的那部分代码提交给PHP解释器    
       
        PHP代码连接mysql的扩展(称之为API接口或驱动),在centos中被做成一个RPM包(php-mysql),安装完成需要重新加载!

LAMP

原文:http://5489884.blog.51cto.com/5479884/1706079

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!