Zend(PHP公司开发的开源脚本引擎)

2023-02-24 83阅读

温馨提示:这篇文章已超过517天没有更新,请注意相关的内容是否还可用!

Zend

PHP公司开发的开源脚本引擎

1997年,Andi Gutmans和Zeev Suraski 创建了PHP3,这是一种基于PHP初始版本的开源脚本语言,由Rasmus Lerdorf 创建。1999年,特曼斯和Suraski创公司Zend技术公司-和PHP4,其中包括PHP4的开源解析器称为Zend引擎。

英文名Zend
创建时间1999年11月
总部所在地Cupertino,CA 美国
经营范围企业级产品和服务

简介

Zend引擎是一个开源脚本引擎(一个虚拟机),因作为PHP语言的重要核心而闻名。它原由仍在以色列技术学院的学生Andi Gutmans与Zeev Suraski所开发。他们之后在以色列的Ramat Gan创立了Zend Technologies。

Zend一名为他们名字Zeev和Andi所组成的新字。第一版的Zend引擎在1999年伴随着PHP第四版问世。它是高度最佳化的后台模组。效能、可靠与延展性是它让PHP更强更大众化的主要原因。目前版本为Zend引擎II。Zend引擎依BSD许可证发布。

公司简介

基本简介

Zend公司推动PHP进入企业级应用。Zend公司针对PHP的应用陆续发布了至关重要的PHP网络应用平台产品和服务。PHP根据NetCraft的数据表明,PHP已经超过ASP成为最流行的Web脚本语言,Zend Engine安装在1500万网站上。全世界范围内,使用Zend有关Web应用产品的客户超过8000家。

Zend公司的投资商是包括Azure Capital Partners、Index Ventures和Platinum Venture Capita在内的非常有实力的投资公司,最重要的是IT行业领先的SAP和Intel也是Zend公司的投资商。Zend公司得到了来自IBM,Oracle,Sun公司的大力支持,和IBM,Oracle达成了战略合作伙伴,共同推动PHP的发展。

基本资料

Zend Technology,Inc.The PHP Company

国际业务:Ramat-Gan,以色列

中国技术支持中心:8610-51657885

创始人:Andi Gutmans、Zeev Suraski,and Doron Gerstel

背景:由PHP架构师、开源Zend Engine和持续创新PHP的领导者共同设立

商业行业:Web应用平台提供者

主要产品:企业级产品和服务,确保企业关键PHP应用的开发、调配和管理

主要客户:包括汉莎航空、迪斯尼、波音、Orange、Electronic Arts在内的超过8,000家客户

主要投资商:Azure Capital Partners,Index Ventures,Intel Capital,Platinum Venture Capital,SAP Ventures and Walden Venture Capital(Israel)

公司服务

概述

Zend公司的产品在2004年有了新的变化,将提供的服务分为三部分:⑴PHP products商业产品;⑵Professional Services专业服务;⑶PHP Training and Certification培训和认证。

商业产品包括开发类、安全类和应用类。另外广泛应用的优化器Optimizer属于免费产品,还有针对不同平台的中间产品,如WinEnabler、Zend Optimizer for IBM AⅨ等。开发类产品,包括Studio的不同版本(标准版,专业版和企业版);安全类包括编译器Encoder和版本的控制工具Safeguard;应用类包含Performance Suit在内的监控和性能提高应用平台Zend Platform。

专业服务

Zend公司提供全方位的PHP商业关键应用的开发和调配,评估你的需求,确保应用的顺利完成。具体内容包括应用设计和评估、代码评估、迁移版本、扩张应用等。

培训认证

通过系统的培训提高PHP技术,国际认可的Zend PHP证书有助于提高自身价值。具体课程包括PHP A-Zend(A-Zend PHP系统培训课程)、PHP Essentials(PHP基础培训课程)、Professional PHP Development(专业PHP开发课程)、PHP Certification Training(PHP认证培训课程)。

Zend在中国已经建立Zend技术支持中心,其在国内的具体职责如下:

⑴提供Zend和PHP的相关信息。

⑵对国内的PHP用户提供全方位技术支持。

⑶Zend公司全线产品的技术支持和当地化。

⑷提供PHP的培训和教育。

⑸建设PHP爱好者和使用者协会。

⑹提供专业的技术交流平台。

集成开发

基本概述

Zend Studio是专业开发人员在使用PHP整个开发周期中唯一的集成开发环境(IDE),它包括了PHP所有必须的开发部件。通过一整套编辑、调试、分析、优化和数据库工具,Zend Studio加速开发周期,并简化复杂的应用方案。

Zend Studio的特点包括:

⑴快速代码开发与配置本地和远程调试器;

⑵数据库连通性&SQL工具团队合作环境;

⑶完全PHP4/PHP5切换PHPDocs/PHP文档处理程序支持;

⑷SFTP、FTP以至SSH的安全连接100个以上代码摘录;

⑸50个以上样品数据库应用程序与Zend Platform?组合。

编辑文件

这个部分讲述如何在Zend Studio中编辑一个文件。

如果想要编辑一个文件,你所需要做的就是打开Zend Studio客户端并开始编写代码。而且,Studio客户端还可以轻松实现许多高级的编辑功能。下面的例子使用了Zend Studio客户端的代码补全特性——Studio客户端的一个节省时间的编辑特性。其他主要的编辑特性还包括书签、实时错误提示、括号提示、模板等。

总体来说,代码补全自动显示出已输入代码在PHP或者HTML中相关的补全选项。

这里有一个例子:

⑴在主工具栏中单击打开新文件。一个新的空白文档就在编辑窗口中打开了。

⑵在编辑窗口中,输入“<”字符。代码补全窗口出现了,并且显示一个HTML标记的列表。

⑶从列表中选择html并且按回车键。HTML标签就出现在编辑窗口中了。

⑷输入“<php”,并且按回车键。

⑸按Ctrl+space键然后输入“pri”。PHP代码补全出现了下一个匹配pri的列表。

⑹从代码补全窗口选择print_r函数并按回车键。print_r出现在编辑行中,并且代码补全窗口重新显示为函数的语法提示。

⑺输入“hello”并且按回车键。

使用功能

这个部分简述创建一个项目的过程。

1.使用项目功能的好处在用户打开一个项目时,Zend Studio客户端自动处理所有项目相关的文件并且增加类和函数名到代码补全列表。另外,还可以查找包含的丢失文件。

2.如何创建一个项目如果想定义一个带有独立特性的工作环境,可以创建一个新的项目。这些特性如调试配置、书签和监视点等。

注意:项目定义文件的文件扩展名标志为*.zpj。

创建一个项目的操作如下:

⑴从主菜单中,选择项目→新项目。出现新项目对话框。

⑵输入新项目的名字。更新相对应的路径。在这一步,你可以跳过所有接下来的对话框并单击完成。单击继续可以定义新项目专有的属性。

⑶为了增加文件或者路径到新项目中,单击项目专区的“增加路径”并浏览将要包含到项目中的文件或者路径。

⑷单击“继续”按钮继续编辑,或者单击“完成”按钮跳出。

⑸接下来的窗口显示的是在用户化的调试选项窗口中定义的默认设置。如果你想在新的项目中应用专有的调试设置,取消用户系统默认的选项框的勾选并修改设置。

⑹选择调试模式。对于一个远程调试来说,你可以更改服务器URL和端口,而且还可以指定临时输出文件的存放目录。

注意:这些设置可以在项目属性对话框中找到。在任何时候想看一个项目的调试设置时,打开项目并进入项目→项目属性。

⑺单击“完成”按钮即可。

代码补全

代码补全的两种代码类型:PHP和HTML。代码补全范围包括:类、函数、变量、常量、关键字、HTML标记、HTML属性、HTML属性的值,等等。

PHP代码的补全还包括:嵌套函数的代码补全、补全函数的值(使用PHPDoc支持来实现)

代码补全提示:

⑴增加@var标记来提示类定义;

⑵通过一个注释,可以把一个变量赋值为一个实际的类。

模版的作用是通过缩写插入代码框架或者代码段。模版功能支持的代码类型是PHP、PHPDoc、HTML、JavaScript or CSS。通过模板功能,可以方便地在团队中共享代码。

1.代码片段代码片段是指可以重复使用的一些代码片段。通过使用这些代码片段,我们可以推动开发流程的速度。我们可以查看和使用已经保存的代码片段,可以创建和更新自己的代码片段,并从Zend的在线数据库中更新代码片段。

2.代码导航——书签在编辑的文件里面使用书签来标记代码,这个功能可以让你很快地在许多脚本文件中找到代码进行编辑。

3.代码导航——转到源具有过滤和自动更新、快速、方便和直观、提高切换效率,“Go to Resource”对话框。

调试简介

ZDE的调试方式分为内部调试和服务器调试。内部调试是指使用ZDE自带的本地PHP4或者PHP5来进行调试。服务器调试使用的是远程的服务器来运行位于服务器上面的PHP脚本。内部调试是开发工程师在编写代码的时候,在上传之前的调试。服务器调试主要是以调试项目为主。

1.内部调试内部调试使用的是ZDE自带的PHP版本。在最新的ZendStudio5.1.0里面分别为PHP4.4.1和PHP5.1.1。

调试的时候用到的一系列工具如下。

⑴调试信息窗口:显示调试过程和语法监测等信息。

⑵变量、观察窗口:查看相关变量、函数、类和表达式的信息。

⑶堆栈窗口:监控堆栈的调用和参数的传递。

⑷调试正在调用的或者是已经调用的函数:使用引入、引出、断点等进行调试。

⑸控制调试的节奏:使用完全或者逐行调试,并且用断点和执行到光标处进行配合。

⑹查看实时的输出结果:查看Text或者浏览器输出两种调试结果。

⑺查看缓冲区:如果代码里面有缓冲区应用,可以直接查看缓冲区的代码。

2.服务器调试

服务器调试

服务器调试(远程)可以让开发人员调试上传的PHP代码,从而进行项目级的调试。也就是说远程服务器上面的ZDE Server将为你实现调试的各种功能(如果服务器已经有ZP,不用再另行安装ZDEServer)。

此外服务器调试的时候,也可以使用本地副本(Tools|Debug|Debug URL里面选择可以使用本地副本就可以了)。这种情况下,ZDE Server在调试被调用的PHP文件的时候,查找的顺序将是:ZDE打开的文件→ZDE打开的项目的文件→服务器上的文件。

使用服务器进行调试也叫Debug URL,但是这与传统的IE调试有着很大的不同。它具备了以下几个特点:

⑴用ZDE内嵌的浏览器访问PHP代码,方便与ZDE Server的互通。

⑵调试交互数据的表单、脚本,如POST等。

⑶调试返回的信息可以分别体现在内嵌的浏览器和调试输出窗口。

⑷自动加载调用的PHP脚本,并且在该脚本的第一行处停止,等待下一步指示。

⑸调试的过程中同样可以查看参数、堆栈、监视点(用户指定的特定参数)等。

断点跟踪

可以在代码的任意行设置断点。设置断点的目的是,让PHP脚本运行到该断点的时候自动停止运行,以便查看变量、缓冲等数据。可以通过鼠标右键、F9快捷键来设置断点。

输出缓冲

PHP的运行的堆栈基本上是指每一个PHP脚本,堆栈在调试的时候显示出的具体的信息需要配合断点调试或者逐行调试才能看到。信息显示的是运行的PHP文件、停止的行数、运行的函数等信息。

注意:如果在一个PHP文件中有引入别的PHP文件,那么堆栈的个数将等于该PHP文件本身加上所有引入的别的PHP文件的个数。

跳入跳出

跳入与跳出主要是针对堆栈来说,在断点或者逐行的调试中,我们可以灵活地跳入或者跳出某个堆栈来看某个堆栈的变量和运行情况。

版本控制

Studio集成了CVS和Subversion等版本管理工具的客户端,可以方便地进行团队开发。

优化器

简介

Zend优化器——优化你的PHP代码。

由于旧的版本和PHP4.3.10兼容性有问题,强烈推荐对Zend Performance Suite,Zend Accelerator,Zend Studio Server和Zend WinEnabler使用者,更新至最新版本同样推荐将PHP升级到PHP4.4.6orPHP5.2.1。运行编译过的代码文件和提高脚本程序的性能——免费。

优化器在提高PHP的运行速度的同时,可以完全免费的运行被Zend Encoder and Zend SafeGuard Suite编译过的代码。

利益

确保使用者安全运行被Zend Encoder编译过的文件,提高运行性能40%。

对于企业级的性能提高,如果希望服务器的吞吐量提高25倍,请试用Zend Performance Suite。Zend Performance Suite的性能提高科技是特别帮助PHP基础的大流量的网络,用于提高反应速度和程序处理的效率。对于PHPversions低于4.0.4,请使用Zend Optimizer1.2.0.,下载前一个版本。

安装

需要指定系统Web服务器的所在目录和php.ini配置文件的目录。

系统需求

基本要求

支持的操作系统、平台和操作系统版本:

—Linux x86

—Linux x86-64

—Linux Power

—Solaris Sparc8,9,10

—Solaris x86 9,10

—FreeBSD x86 5.x,6.x

—Windows x86 2000,XP,2003

—OS X Mac Power

—AⅨ pSeries5

服务器

支持的Web服务器:

—Apache1.3.x

—Apache2.0.x(Prefork mode only)

—Apache2.2.x(Prefork mode only)

—ⅡS5,6

版本

支持的PHP版本:

—4.2.x up to4.4.x

—5.0.x,5.1.x,5.2.x

OS X Mac下使用的PHP版本:

—4.3.x up through5.2.x

管理平台

概述

Zend Platform是唯一的一个可以让应用持续稳定运行的PHP生产环境。

在为IT个人和企业提供企业级的高稳定性的应用的前提下,Zend Platform可以提供高性能和扩展性等特点,并让用户在你的Web上以最好的响应速度愉快地浏览。

Zend Platform也是唯一地能够保证稳定服务的平台。它通过PHP监控和即时的错误处理系统,来代替传统的错误定位方式,让开发和维护工作轻松而愉快。

1.Zend Platform对于企业的价值体现在让你的应用实现稳定、高扩展性、快速响应的时候了。Zend Platform让Web和数据库服务器根据负载和应用复杂程度的提高持续稳定运行。请加入我们众多的客户当中,他们来自于众多的企业,并从Zend Platform上获得空前的利益。

⑴高扩展性:在降低生产成本的同时,响应更多的用户请求。

⑵强有力的优势:确保PHP应用得到最高的性能。

⑶更高的效率:无缝的运行和配置管理。

⑷令用户满意的浏览:提高用户的浏览效果,令用户满意并持续对网站的浏览。

2.强大的管理和错误处理方案Zend Platform能精确地找出瓶颈问题和运行时的错误,及时发现脚本或者函数执行缓慢,发现空白或者不完整的页面,同时还能随时注意系统的负载和所有类型的PHP和数据库的错误。所有这些都可以用鼠标轻松地进行配置。另外,Zend Platform的新的Session Clustering的模块将极大地提高你的PHP应用的扩展性。

3.Zend Platform具备的特点

⑴中心控制台:显示PHP运行环境的各个方面。

⑵综合的应用:杰出的运行概要分析和性能监控。

⑶跟踪调试:

—重现错误并保存完整的错误文档。

—具体的警报信息自动发送至相关的IT人员。

—在线调试;实时的错误修正。通过Zend Studio集成环境实现。

⑷性能提高:

—运行中实时的代码优化。

—代码加速和预编译。

—完善的缓存解决方案。

—文件下载优化和加速。

—对PHP4和PHP5完善的支持。

⑸独特的功能:

—PHP Session Clustering

—PHP Intelligence

—PHP Performance Management

—PHP Configuration Control

—PHP/Java Integration Bridge

⑹Session跨服务器:

—性能提高(up to x10)。

—加锁机制保证数据的完整性。

—与原来的PHP脚本无缝连接。

—独立于负载均衡服务器。

—线性地升级性、方便地添加服务器。

⑺即装即用的解决方案:

—安装;配置方便、简单。

—在Web服务器上面以PHP的模块安装。

—较低的生产环境配置要求。

—无须重新编译PHP和Apache。

—无须更改现有代码。

使用说明

1.安装注意事项对ZendPlatform的安装文件解压后,运行./install就可以打开安装界面。根据安装界面的提示进行操作就可以了。在此过程中请注意以下事项:

⑴请确认服务器的内存在正常运转的情况下,有足够的剩余空间(比如100M)。

⑵服务器使用的php.ini的具体路径。以phpinfo()的输出为准。

⑶Apache的执行路径,便于ZendPlatform重启Apache。

⑷选择中央控制还是节点的ZendPlatform模式。如果选择节点,需要把节点注册到中央控制中心。

错误处理机制。如果安装过程中出现错误,请运行<;安装目录>/Zend/bin/support_,。选择第三项“Collect information and send it by E-mail”,在“Recipient's E-mail”填入技术支持工程师的E-mail地址。系统将会自动收集相关信息并发送给技术支持工程师以便分析原因。

2.关键配置说明安装了ZendPlatform以后,为了让ZendPlatform稳定地发挥其性能。需要对以下几个关键设置做配置,关键设置集中在ZendPlatform的性能管理上。进入Performaceàsettings:

—Code Acceleration:

Accelerator Memory:设置在32与64之间,如果服务器需要可以适当调大。但是总体来说不需过大。

—Dynamic Content Caching:

Maximum Cache Size:一般情况下设置1G或500M就已经足够,但是请不要保留默认的“Unlimited”设置。

Minimum Free Diskspace:表示最小空闲空间容量,所以请确定其值是否小于所用硬盘空闲空间的大小。

3.重要功能位置说明如果您是第一次使用ZendPlatform,那么以下几个功能将会是需要的。

实现功能

1.背景

因特网或者万维网的核心是HTTP协议(超文本传输协议)。同时,因为HTTP协议的无界性,网站应用无法将浏览器访问与不同的服务器连接起来。从本质上说,这意味着用户从一个业务进入到另一个业务时,新的服务器有可能无法得到该用户的信息。

为了解决这个问题,一个新的概念“Cookies”被引入了。所谓的“Cookies”指的是一个小型数据结构,这个存放在用户本地的数据是被用来储存用户的信息。当该用户访问一个网站的时候,网站的服务器从用户本地得到用户数据后经过处理再把结果返回给用户。所以,给用户的感觉是网站似乎记住了该用户的信息。

同时,用户可以方便地在登录该网站时使用原先的设置,甚至不需要输入密码进行登录。“Cookies”使用最多的领域是记录用户的相关配置信息或者是在一个在线商店所采购的采购记录。

然而,“Cookies”数据保存在用户本地的特点容易造成两个方面的负面效果。第一是过长的“Cookies”数据的保存与传输都将是一个不小的资源消耗。第二是对于一些重要的数据,保存在用户本地容易造成数据错误,从而给用户的访问带来负面影响。为此,基于“Cookies”的HTTP Session概念产生了。

代替传统的把所有的信息存储在用户本地的做法,Session架构把用户的信息储存在服务器端,而在用户端只保存了区分布不同用户信息的唯一的“Session ID”。

PHP是通过内嵌的扩展来实现Session应用的,并且该扩展是基于地层的架构。PHP对Session的支持允许网站实现大量的注册和访问量。

可是,当要在一个服务器集群实现PHP Session的应用时,问题变得复杂起来。

经典的多服务器集群包含了一组服务器,在每台服务器上面加载相同的PHP应用。同时,服务器集群的出口由一个下载均衡服务器来实现,下载均衡管理器在服务器之间分配流量保证各个服务器的负载是均衡的。这种应用使得网站应用突破了单台服务器的传统模式,而由服务器集群来承载同一个PHP应用。很明显,这种集群服务器的应用提高了PHP业务的性能并减低了终端用户的访问时间。

由于HTTP协议的不确定性,同一个用户的不同HTTP请求很有可能被发送到不同的服务器。所以,将会造成用户的Session id无法及时获取正确的用户信息的问题,并最终导致用户使用上的不方便。

2.Session集群化管理

Zend之前的一些解决Session不能跨服务器的方案如下。

⑴负载均衡Session方案。

通过负载均衡服务器把特定的HTTP请求指定到相同的服务器。存在着一些不足:

—SessionID与服务器的对应很难成功地保持。在没有HTTP协议校验的前提下,HTTP协议很容易丢失目标。而且,因为负载均衡的性能问题使用HTTP协议进行校验是不稳定的。

—如果在负载均衡服务器上面启用Session定向,将不利于负载均衡服务器本身的运行特性。尤其是在使用了流行的NAT技术后,影响更加明显。

—为了达到SessionID与服务器的对应目的,负载均衡将需要花费相当昂贵的系统消耗来实现。

—当负载均衡服务器为了实现Session功能的时候,它的负载将会急速上升,并逐渐地成为服务器集群升级的瓶颈。在集群服务器上添加服务器将会因为负载均衡的瓶颈问题而变得困难。

⑵通过NFS系统来共享Session的方案。

因为负载均衡实现Session共享的局限性,有人开始尝试用NFS来共享。通过集群中的NFS文件服务器来实现,从而来实现集群里的服务器的Session应用。甚至有人觉得通过负载均衡服务器来实现Session共享会变得没有必要,而且可以使得网络的硬件投入得到减少,DNS轮询都能够满足Session的应用。但是这种方法同样存在着一些局限性:

—数据完整性:NFS的文件加锁机制在许多场合下是不合适的。这种情况有可能导致Session的数据很容易出错。

—速度缓慢:从NFS文件系统提取Session数据远远比本地提取耗时,同时网络的架构也将影响数据的传输速度。

—将所有的数据都存储在一个服务器上意味着这是一个系统故障点:如果NFS服务器出现了故障,整个PHP应用系统将无法工作。为此就必须为NFS服务器配置更多的设备和更完善的电源管理。但是,这也是一个很大的资金投入,同时,他还是没有从根本上解决单一故障点的问题。因为NFS的网络接口还是一个。

—系统升级:把系统所有的数据都存放在一个中心节点,伴随着的一个问题是系统的升级变得困难,而中心点就是系统升级的一个瓶颈。所以,往集群里面增加服务器所带来的效益将因为这个瓶颈问题而被降低。

—安全性:NFS一直以来都被认为是一个安全性比较差的协议。许多专业的IT公司也因此放弃了NFS网络文件系统。

—持续的硬件投入。

⑶采用数据库来存放Session信息

第三种解决Session不能跨服务器的方法是把共享的Session放在一台相应的数据库服务器中。这种方法也有效地解决了NFS文件系统方案带来的数据完整性和有效性等问题。但是这个方案同样地存在着某些不足:

—速度:相对本地存储来说,数据库服务器将需要在数据库处理上面占用整个PHP应用平台的时间。

—故障点:数据库服务器还是存在着单一故障点的问题。

—系统升级:使用数据库来存储Session这个方案同样存在着升级困难的问题。而这个问题在考虑数据库服务器的处理能力和负载的时候会显得尤为突出。

至今,通用的解决方案并不能满足PHP集群化应用发展的需求。总体来说,有以下几个方案的困难需要解决。

⑴系统升级的瓶颈问题:已有的解决方案总是把问题集中在一个单一的中心节点上面。为此,限制了其方案的处理能力,为集群应用的发展造成了困难。

⑵性能:已有的解决方案往往需要过度牺牲中心节点的系统资源,所以中心节点的硬件投入比较大。

⑶故障点:已有的解决方案都需要一个中心节点,为此整个系统存在着单一故障点的问题。这也意味着系统在运行过程中存在着较大的风险。

3.Zend的解决方案

Zend公司是应许多客户要求的情况下,开始Session clustering模块的开发的。许多客户一直被实现Session共享而带来的系统消耗等问题而困扰。作为PHP发展的主要推动者,Zend公司强烈意识到这个问题的严重性。客户反映的问题主要是集中在Session共享的安全性和多余资源投入。

在Zend的Session共享的解决方案出现之前,客户往往要搭建复杂和昂贵的框架添加数据库服务器等硬件来实现Session共享。但是这样的框架还经常无法提供稳定、可靠的Session跨服务器的解决方案。而且,这种复杂的框架还经常给商业应用的稳定性带来错误和潜在的危险。

Zend新的Session clustering的模块(Zend Platform的部件之一)就是为提供一个综合的Session跨服务器的解决方而开发的。并在这个方案中,有效地解决了上述几个解决方案存在的问题。更为重要的,没有为现有客户增加成本。

在Zend Session clustering的解决方案中,Sessions“居住”在它第一次被生成的服务器上。同时,这些Session可以别同一个集群服务器所共享。这意味着Zend的解决方案从根本上解决了Session不能跨服务器的问题,并提供了较高的性能。同时,它的系统升级特性也可以让客户能有效地使用现有的系统资源,并简便、迅速地升级。

Session集群管理的几大部件:

⑴Session的存储:可以选择存储在内存或者是存储在硬盘并在内存进行缓存。

⑵SCD守护进程:Session clustering守护进程,把Session信息从Session被存储的地方提取出来提交给PHP engine,或是从集群里别的服务器上提取并提交给PHP engine。

⑶mod_cluster PHP扩展:是一个PHP的Session处理负责与SCD守护进程的通信。

SC架构

Zend的Session clustering模块使用了强大的加锁和数据完整性机制来实现Session数据的安全性。在使用Session clustering时,可以随时地切换两种不同的Session存储模式:硬盘或只在内存。这种存储方式也提供了错误恢复的功能,因为如果发生了不可预测的故障时,能够及时恢复Session数据。

Zend的Session clustering模块对现有的PHP的兼容性很强,同时不影响其他扩展的正常使用,也不需要修改任何代码。Zend Platform的Session clustering的解决方案就是集成了一个PHP的扩展。同时,在PHP.ini里面也可以选择是用现有的解决方案还是Session clustering模式。

Zend的Session clustering模块从技术上来说,比现有的几个解决方案都更加成熟,也是现今唯一的能迅速实现系统升级的解决方案。Session clustering用较低的成本来实现PHP的集群应用,并可以给客户带来无法比拟的性能、稳定性和数据完整性。

Zend的Session clustering的解决方案也是截至目前唯一的一个能够集成到PHP的解决方案。因为实现Session clustering的设计与代码编写都是在PHP的架构下实现的。

下面列出的是Session clustering与其他方案的比较:

⑴线性系统升级:在系统架构中不再存在瓶颈问题。新加入的服务器能有效地发挥出应有的性能效益。同时,Session clustering也不会给现有的网络架构和设备增加额外的负担。

⑵速度优势:经过压力测试,Session clustering模块是现有的Session跨服务器解决方案的4~6倍的速度。

⑶无故障点:如果因为不可预测的原因,有一台服务器停止服务了,损失的也只是那一台服务器的Session数据,而不是整个系统。损失的数据可以迅速在其他的服务器上重新建立。

⑷安全性:Session clustering’s内在的数据完整性和加锁机制可以实现强大的Session应用。并允许高用户负载下的商业应用。

⑸错误矫正:Session clustering可以选择把Session数据存储在硬盘当中。从而可以从系统或者内存的出错中恢复过来。

⑹Session clustering试你的资金投入均匀分布在服务器机群中:Session clustering可以与任何的负载均衡技术环境运行(包括DNS轮询)。

⑺强大的兼容性:Zend的Session clustering解决方案提供了强大的集成特性,可以兼容现有的代码和PHP应用。现有的PHP项目可以直接移植到Session clustering解决方案当中应用。

4.用Zend Platform做缓存处理

作为ZendPlatform中性能管理的强大组件,动态内容缓存能为大幅度地提高网站的性能。同时,为了更好地让这个组件发挥它的强大作用,在对文件做Cache的时候,需要注意以下几个方面:

⑴Cache的配置。

⑵如何对PHP文件做Cache。

⑶PHP文件的Cache条件。

⑷ZendPlatform API。

1.Cache的配置列出的是动态缓存的配置选项。这里需要注意的是Maximum Cache Size配置选项,默认的设置是“unlimited”,这里建议改为一个固定值,同时对“Minimum Free Diskspace”的设置是表示当磁盘空闲空间少于设定值时,不再进行Cache操作,这个设置需要根据磁盘的具体应用而定。

2.如何对PHP文件做Cache对Cache做了配置之后,如何对文件进行Cache呢,或者在哪里对文件做Cache呢?在Performance功能里的File View组件可以实现此项功能。“File View”选项,列出了服务器各个域名的发布目录下的所有文件。在这里,我们可以对文件进行Cache。

默认的文件状态是加速状态。单击文件名前面的选项框,选中后单击列表顶部的“Cache”按钮就可以完成对一个文件的Cache。当然,可以对多个文件和文件目录做整体Cache。只需要注意文件是否满足Cache的默认设置要求。

3.PHP文件的Cache条件作为一门动态的Web应用语言,PHP具备了许多种数据传递方式。例如,GET、COOKIE、Session等都是数据交互的方式。当一个文件通过ZendPlatform的GUI界面被Cache的时候,它的执行结果将会被保存在指定的缓存区,如果第二个访问该文件的请求到达时,ZendPlatform将根据Cache条件进行判断,看时候需要重新执行文件。

如果根据Cache条件被缓存的文件已经达到访问的要求,ZendPlatform将直接把缓存区中该文件的执行结果返回给用户。所以Cache的条件在Cache处理的过程中,起到了至关重要的作用。

除了特殊的应用以外,在一般情况下建议使用默认的“None”设置。下面以COOKIE为例,介绍对PHP文件做Cache的条件控制,

Cache的条件控制

列出了两个Cache的条件,第一个是AllGET选项,表示当访问请求包含的变量包含新的值时重新执行文件,并保存到缓存区。第二个是COOKIE选项,举例以“username”这个变量为Cache条件,当Cache中的COOKIE中的“username”变量出现新的值的时候,重新执行文件,并保存到缓存区。

4.ZendPlatform APIZendPlatform的GUI界面为用户提供的是“out-of-the-box”的功能,属于即装即用的功能,不需要对程序本身进行修改。同时,为了最大限度地发挥PHP的性能,ZendPlatform还提供了一系列API编程接口。该API接口把Cache的范围缩小到单个函数,以代替整个文件的输出。ZendPlatfrom的API是直接内嵌在PHP代码里面的,可以实现函数输出值或数据库访问值的缓存和缓存控制。最常见的ZendPlatform的API是数据缓存(Data Caching),使用数据缓存最大的应用是社区、论坛系统。

Data Caching(数据缓存)获取的是PHP或者用户定义的函数的执行结果,并以字符串的形式进行缓存。通过使用serialize和unserialize这两个函数还可以对数列和对象进行缓存。对于直接产生文件输出的函数,我们不建议对它进行缓存,因为如果它被缓存了将不会再被执行,从而导致文件没有输出。数据缓存中使用的函数包括output_cache_fetch,output_cache_put和output_cache_get。

为了更好地应用Zend提供的API函数,这里提供了5条建议:

⑴产生输出的循环使用ZendPlatform的API可以将此代码修改为:

PHP代码:<?php$forums=unserialize(output_cache_fetch("ForumsList","serialize(listForums())",600));?>

如果在缓存中有“ForumsList”的数据,将直接从缓存中提取,从而绕过了执行程序并从数据库提取的环节。

安全卫士

基本简介

1.Zend Guard概述Zend Guard可以实现对PHP应用的脚本进行加密保护和对PHP应用的产品进行商业许可证管理。

Zend Guard可以为许多软件生产商和IT服务提供商提供安全的完善的加密和安全的产品发布系统。可以轻松实现产品发布的管理。

Zend Guard由两个关键的组件组成:Zend Guard’s encoder和Zend Guard’s license manager,

产品特点

⑴PHP应用的脚本进行加密保护和对PHP应用的产品进行商业许可证管理。

⑵增加IP的使用限制(可以防护复制应用)。这样可以防止PHP脚本被配置在其他的服务器而运行。

⑶可以为IT服务提供商提供解决方案。这样,他们的代码就不会被轻易地修改,以便他们进行技术支持工作。

⑷可以让软件发布商业的PHP产品进行灵活多样的许可证管理。

⑸多样的许可证管理包括用户并发数、时间控制、网络分段控制、服务器硬件控制等。

3.用Zend Guard来保护PHP

⑴发布加密以后的PHP应用产品。

⑵保护PHP代码的知识产权。

⑶防护代码的反编译,代码经过模糊处理和加密的双重处理。

⑷几秒钟时间迅速地模糊处理和加密整个PHP项目。

⑸用最新的代码优化技术在加密的过程中对代码进行优化。

在各种各样的平台中使用加密过后的PHP脚本,包括Linux,Windows,Mac OS X,FreeBSD,Solaris,AⅨ等。

应用服务

基本简介

Zend Server是PHP创始公司Zend开发的功能十分强大的PHP Web开发应用服务器!是一个现成的PHP解决方案,可以简化Windows和Linux环境中PHP应用程序的开发和运行。它包括一个经过全面测试的PHP最新版本、对众多数据库系统的支持,以及许多用于改善PHP性能和诊断的专用于Zend的附加软件。

Zend Server目前有两个可用版本。如果您在PHP方面有一定的经验并且愿意手动维护服务器和管理更新,可以选择Zend Server的“社区”版,称为Zend Server Community Edition(CE)。该版本适用于“非关键”应用程序并且针对Windows、Linux和Mac OS X免费提供;但是,它不包含“商业”版所包括的页面缓存、代码跟踪、脱机作业排队、自动更新和诊断特性。如果这些特性对您比较重要(如果您使用的服务器要为关键业务PHP应用程序提供服务,这些特性应该比较重要),那么您应考虑购买Zend Server的商业版,这样您将有权使用以上全部特性并能得到Zend提供的技术支持。

基本特性

1,基于Web的服务器管理控制台:Zend Server通过为PHP配置和维护提供基于Web的界面,大大简化了管理PHP开发环境的任务。使用Zend Server,您无需在文本编辑器中编辑配置文件,可以使用点击式界面通过任一标准Web浏览器完成更改PHP参数的任务。常见的任务(如启用或禁用扩展、更改PHP include path或重启服务器等)均可通过这个基于Web的控制台完成。

2,内置的性能优化套件:Zend Server不仅仅是PHP的预打包版,它还包含一套由Zend创建的辅助工具,使故障诊断和性能优化变得更加简单。这个套件包括Zend Optimizer+(一个用于改善运行时性能的扩展)和Zend Data Cache(一组用于PHP应用程序中的缓存函数)等工具。Zend Server的商业版还包括Zend Page Cache,该工具支持基于规则的HTML输出缓存。

3,全面的应用程序监视和故障诊断:PHP不含内置的调试器,这使得查明和排除应用程序错误成为一个费时且代价高昂的过程。有了Zend Server,就几乎不存在这一问题了,因为有各种监视和调试工具可供我们使用。Zend Server的这两个版本均包括Zend Debugger—一个帮助调试PHP脚本的扩展。Zend Server的商业版还包括两个新特性:Zend代码跟踪和Zend作业队列,前一个特性简化了对PHP脚本执行的跟踪、分析和调试,后一个特性能够异步自动运行PHP脚本或以预先指定的间隔运行PHP脚本。最后,Zend Monitor提供了一个记录、跟踪和报告应用程序和服务器警报的接口。

4,PHP认证:Zend Technologies是PHP应用程序开发和部署工具的知名供应商,Zend Server的每个版本都包含经过认证的最新版PHP(已在各种平台上进行了测试)。对于刚刚开始使用开源技术的大型企业,该认证在增进使用PHP平台的信心方面非常重要。Zend Server的商业用户还可享用持续的安全更新和缺陷修复,以确保其PHP应用程序的完整性。

5,Zend Server Community Edition(CE)完善了整个开发工具,包括开源的Zend框架和PHP Development Tools(PDT)项目,开发者第一次开发PHP应用不需要花时间配置服务器平台上,Zend Server尤其在非关键的服务器部署上具有简单的优势。

参考资料

1.我们的历史·Zend官网

2.Zend 产品介绍·上海粒瓦信息科技有限公司 ( 电脑之家 ) 官网

目录[+]