LAMP

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

    工做流程:html

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


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

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


关于动态资源请求的工做图web

p_w_picpath

 

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


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

  

        PHP语言有一套本身完整的解释器,无需依赖linux操做系统的特别命令mongodb


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),安装完成须要从新加载!

相关文章
相关标签/搜索