LAMP平台的构成组件

xiaoxiao2021-02-28  64

Linux操作系统:LAMP的架构基础,支撑Web点点的操作系统Apache网站服务器:作为LAMP架构的前段应用MySQL数据库服务器:作为LAMP架构的后端应用,各种应用的信息都可以存储到数据库中PHP/Perl/Python:这里主要介绍PHP

PHP是通用服务器端脚本编程语言,其主要用于web开发用以实现动态web页面,也是最早实现将脚本嵌入到HTML源码文档中服务器端脚本语言之一。同时,PHP还提供了一个命令行接口,因此也可以在大多数系统上作为一个独立的shell来使用

PHP的Opcode是一种PHP脚本编译后的中间语言,就像Java的ByteCode,或者.NET的MSL。PHP执行PHP脚本代码一般会经过如下4个步骤(确切的来说,应该是PHP的语言引擎Zend)        1、Scanning(Lexing) —— 将PHP代码转换为语言片段(Tokens)        2、Parsing —— 将Tokens转换成简单而有意义的表达式        3、Compilation —— 将表达式编译成Opocdes        4、Execution —— 顺次执行Opcodes,每次一条,从而实现PHP脚本的功能 php执行PHP脚本代码一般会经过如下几个步骤:扫描–>分析–>编行–>执行

假如第一个用户请求使用PHP开发的网页时,要做以上的四个步骤,第二个用户请求同一个文件时也不会直接执行会执行,还会经历上四个步骤,所以速度相对较慢,若想重复使用,可以将安全的代码本身在多个进程间共享,所以出现了下面的PHP加速器。

常见的加速器有:APC,Eaccelerator,Xcahe,Zend Optimizer,Zend Guard Loader,Nusphere phpexpress Zend Optimizer并非是opcode加速器,它是由Zend Technologies为PHP5.2及以前的版本提供的一个免费、闭源的PHP扩展,其能够运行由Zend Guard生成的加密的PHP代码或模糊代码。 而Zend Guard Loader则是专为PHP5.3提供的类似于ZendOptimizer功能的扩展。项目地址,http://www.zend.com/en/products/guard/runtime-decodrss

可以将opcode缓存与PHP的共享内存中,从而可以让同一段代码的后续重复执行时跳过编译阶段以提高性能,由此可以看出,这些加速器并非真正提高了opcode的运行速度,而是通过分析opcode后将它们重新排列已达到快速执行的目的。

1.PHP是如何被Aphche调用的? httpd本身不具备解析PHP代码的能力,需要依赖PHP的解释器 举例:在一台服务器上运行了httpd的web服务器程序,并且在服务器的本地磁盘上存储了很多网页文件,这些网页文件是使用PHP开发的。当用户请求一个PHP页面时,httpd本身是无法解析PHP的,需要交给php解释器,php解析器将结果返回给httpd,httpd只是将结果返回给用户。关键问题是httpd如何调用PHP?方式有以下几种: (1).模块机制:首先httpd是模块化的,可以将PHP编译成apache的一个模块,此时php是作为apache进程的一部分来运行的。 (2).CGI机制:可以将PHP作为一个独立的进程,当httpd需要代码时临时基于CGI协议唤醒一个PHP解释器。如果是基于CGI机制运行,php进程的启动,销毁都是由httpd负责,这样速度很慢,此时我们可以让PHP运行为一个独立的服务。 (3).FastCGI机制:PHP作为一个独立的服务运行,此时可将httpd服务器和php服务器分离开以C/S模式运行,当用户请求的是PHP的动态页面时,通过fastcgi协议去联系后端的PHP服务器

2.PHP与MySQL之间的调用 php本身不依赖mysql,只有程序员开发的代码用到mysql时才会联系mysql。PHP联系mysql的工具是php-mysql,作为PHP的组成部分提供。php联系mysql服务器时使用mysql协议。当编译安装的时候在配置环境时,添加mysql参数来调用

LAMP的优势: 1成本低廉、全部是开源软件 2可定制、易于开发 3方便易用、安全和稳定

转载请注明原文地址: https://www.6miu.com/read-40580.html

最新回复(0)