PHP 缓存加速器介绍
操作码缓存
请求一个 PHP 程序时,PHP 引擎会解析程序,并且将编译码作为特定操作码。这是要执行的代 码的一种二进制表示形式。随后,此操作码有 PHP 引擎执行并丢弃。操作码缓存将保存这个编 译后的操作码,并在下一次调用该页面时重用它,这就节省了重复编译的时间。
为了提高 PHP 引擎的执行效率,PHP 缓存加速器设计的目的是缓存 PHP 解析过的操作码,这样 同样的请求访问过来,PHP 引擎就不需要解析了。可以直接调用 PHP 操作码,就提高 WEB 服 务器的响应速度。从而提高了用户的访问体验。
一句话:
PHP 加速器是一个为了提高 PHP 执行效率,从而缓存起 PHP 的操作码,这样 PHP 后面执行就 不用解析转换了,可以直接调用 PHP 操作码,这样速度上就提高了不少。
在 LAMP 环境中,使用的是 libphp5.so 响应并处理 PHP 程序的请求。
响应执行的流程大概如下:
1. Apache 接收客户 PHP 程序请求
2. Apache 将 PHP 程序请求传递给 libphp5.so(mod_php)
3. libphp5.so(mod_php)定位磁盘上的 PHP 文件,并加载到内存
4. libphp5.so(mod_php)编译源代码称为 opcode 树
5. libphp5.so(mod_php)执行 opcode 树
注意:
PHP 加速器相应的就是第四步,它的目的就是防止 PHP 每次请求都重复编译 PHP 代码,因为在 高访问量的网站上,大量的编译往往没有执行速度快呢?所以这里面有个瓶颈就是 PHP 的重复编 译既影响了速度又加载了服务器负载,为了解决此问题,PHP 加速器就这样诞生了。 参考文档:http://www.vpser.net/opt/apc-eaccelerator-xcache.html参数详解:http://www.oschina.net/question/17_4150
151
PHP 缓存加速器安装环境准备
Lamp 基础 web 环境准备
在安装 PHP 扩展及缓存加速之前,需要安装好 lamp 的基本环境。配置如下:
Linux centos6.5
Apache 2.2.27
Mysql 5.1.72
Php 5.3.27
PHP 加速器的正式安装配置
sed 和 awk
正则表达式
正则表达式是一种描述方法,一种小型的语言。用字符来表示某种含义的符号
一个点代表一个字符
例 1:样式 .T. 代表 3 个字符,中间是 T,左右两边是任意的一个字符 例 2:… 代表字符长度是 3 的字符串,若要比对,则需要加转义符\ 样式:data\... 代表 data.后接 3 个字符,如 data.txt data.cfg data.123
^在行首
例如:样式^jack 代表 jack 应出现在行首,才符合条件。如 jack chen
$在尾部
例如:样式 123$ 代表在行的后面是 123,才符合条件。如 jack123
[…]字符集合 […]代表字符串行中的一个字符(长度为 1 个字符) 样式 1: [ABc] 代表 A 或 B 或 c 这三个字符中的一个 样式 2:[Ss]name 代表 Same 或 sname 以下常见用法
[A-Z] 一个大写字母
[a-z] 一个小写字母 [0-9] 一个数字
[^A-Z] 除了大写字母之外的一个字符 [^a-zA-Z] 一个非英文字母的字符
[^a-zA-Z0-9] 一个非英文字母,并且非数字的字符
152
^出现在括号里的第一个位置,代表“非/不是”的意思
*出现 0 个以上
*代表前面的字符有 0 个或者 0 个以上
例如:aA*c 代表 A 这个字符可能出现 0 个或者 0 个以上 如:ac aAc aAAc
\{…\}指定符合的个数
指定前面字符的个数
例如:\{3,5\} 表示前面的字符有 3 到 5 个。[a-z]\{3,5\}代表以小字母组成的字符串,长度是 3 到 5
\(..\)把比对符合的字符串暂时保存起来
例如:H\(..\)y 表示要保存 H 和 y 之间的 3 个字符
若要提取保存的字符串,可以用位置参数。\1 代表第一个保存的字符串,\2 代表第二个保存的字符