,zend_extension=/path/to/eaccelerator.so,eaccelerator.shm_size="128",eaccelerator.cache_dir="/tmp/eaccelerator/",eaccelerator.enable="1",eaccelerator.optimizer="0",eaccelerator.debug="0",
`,3. 重启Apache或PHPFPM服务。,4. 使用
eaccelerator_*`函数来控制缓存行为。eAccelerator配置和使用指南
eAccelerator介绍
1. 背景
eAccelerator是一个免费开源的PHP加速、优化、编译和动态缓存的项目,它可以通过缓存PHP代码编译后的结果来提高PHP脚本的性能,通过使用eAccelerator,可以优化你的PHP代码执行速度,降低服务器负载,提高PHP应用执行速度最高达10倍,eAccelerator项目诞生于2004年,当时它是作为Turck MMCache项目的一个分支提出并投入开发的,Turck MMCache由Dmitry Stogov开发,是个非常优秀的PHP内存缓存加速系统,如今仍然有很大部分eAccelerator的代码应用到该项目中。
2. 原理
eAccelerator通过把经过编译后的PHP代码缓存到共享内存中,并在用户访问的时候直接调用从而起到高效的加速作用,它的效率非常高,从创建共享内存到查找编译后的代码都在非常短的时间内完成,对于不能缓存到共享内存中的文件和代码,eAccelerator还可以把它们缓存到系统磁盘上,eAccelerator同样还支持PHP代码的编译和解释执行,你可以通过encoder.php脚本来对php代码进行编译达到保护代码的目的,经过编译后的代码必须运行在安装了eAccelerator的环境下,eAccelerator编译后的代码不能被反编译,这使得代码更加安全和高效。
eAccelerator安装配置
1. 支持平台
由于aAccelerator提供了大部分基于共享内存的API,所以在*nix的平台上将得到更好的支持,虽然也发布了基于windows平台的binary版本,但在这里就只提供基于*nix平台的配置和说明,目前可以支持的平台包括Linux, FreeBSD, OpenBSD, Mac OS X, Solaris, AIX en HPUX。
2. 系统要求
需要php4或php5,autoconf,automake,libtool,m4,eAccelerator只支持使用mod_php或者fastcgi mode安装的PHP。
3. 安装
先去eAccelerator官方下载最新版的源码包:eaccelerator0.9.5beta.tar.bz2。
#tar zxvf ./eaccelerator0.9.5beta2.tar.bz2 #cd eaccelerator0.9.5beta2 #export PHP_PREFIX="/usr/local" (把PHP安装目录导入到环境变量,FreeBSD默认是/usr/local) #$PHP_PREFIX/bin/phpize #./configure enableeaccelerator=shared withphpconfig=$PHP_PREFIX/bin/phpconfig #make #make install
4. ini文件配置
安装完成,下面开始配置php.ini文件,eAccelerator提供了两种配置和调用方式,分别如下。
安装为Zend extension模式:
zend_extension="/usr/local/lib/php/20050922/eaccelerator.so" eaccelerator.shm_size="16" eaccelerator.cache_dir="/tmp/eaccelerator" eaccelerator.enable="1" eaccelerator.optimizer="1" eaccelerator.check_mtime="1" eaccelerator.debug="0" eaccelerator.log_file = "/var/log/httpd/eaccelerator_log" eaccelerator.filter="" eaccelerator.shm_max="0" eaccelerator.shm_ttl="0" eaccelerator.shm_prune_period="0" eaccelerator.shm_only="0" eaccelerator.compress="1" eaccelerator.compress_level="9"
如果你使用了thread safe模式安装的PHP,你必须使用“zend_extension_ts”替换第一行的“zend_extension”。
安装为PHP extension模式:(这是大部分采用的方式)
extension="eaccelerator.so" eaccelerator.shm_size="16" eaccelerator.cache_dir="/tmp/eaccelerator" eaccelerator.enable="1" eaccelerator.optimizer="1" eaccelerator.check_mtime="1" eaccelerator.debug="0" eaccelerator.log_file = "/var/log/httpd/eaccelerator_log" eaccelerator.filter="" eaccelerator.shm_max="0" eaccelerator.shm_ttl="0" eaccelerator.shm_prune_period="0" eaccelerator.shm_only="0" eaccelerator.compress="1" eaccelerator.compress_level="9"
有关php.ini文件的详细配置说明,请参照源码目录的README文档或者访问官方文档:ini setting,完成安装配置后,我们最后要创建缓存目录。
#mkdir /tmp/eaccelerator #chmod 777 /tmp/eaccelerator
5. 验证安装结果
通过浏览器访问您的phpinfo()页面或者运行php i得到php配置信息,里面如果看到类似下面的信息就表示安装成功了,This program makes use of the Zend Scripting Language Engine: Zend Engine v2.1.0, Copyright (c) 19982006 Zend Technologies。
三、使用eAccelerator开发PHP代码
1. API文档和接口说明
在使用eAccelerator开发PHP代码时,可以参考其详细的API文档和接口说明,这些文档提供了关于如何使用eAccelerator的各种功能的信息,包括如何启用缓存、如何管理缓存等,具体的API文档可以在eAccelerator的官方网站上找到。
2. 开发范例
以下是一个简单的使用eAccelerator的开发范例:
<?php // 启用缓存 eaccelerator_init(); // 检查缓存是否启用 if (eaccelerator_exists('my_cached_data')) { // 从缓存中获取数据 $data = eaccelerator_get('my_cached_data'); } else { // 生成一些数据 $data = 'Hello, world!'; // 将数据存入缓存,缓存时间为300秒 eaccelerator_put('my_cached_data', $data, 300); } // 输出数据 echo $data; ?>
在这个例子中,首先检查缓存中是否存在名为'my_cached_data'的数据,如果存在,则从缓存中获取该数据;否则,生成一些数据并将其存入缓存中,输出数据。
附录和参考资料
在使用eAccelerator的过程中,可以参考以下附录和参考资料以获取更多信息:
1、eAccelerator官方网站:https://www.phpcache.com/ 提供了最新的下载链接、文档和社区支持。
2、eAccelerator在GitHub上的仓库:https://github.com/eaccelerator/eaccelerator 包含了源代码、issue跟踪和贡献指南。
3、PHP官方文档:https://www.php.net/manual/en/book.eaccelerator.php 提供了关于eAccelerator扩展的详细信息和示例。
FAQs常见问题解答
问题1:为什么使用eAccelerator?
答:使用eAccelerator可以提高PHP应用的执行速度,降低服务器负载,通过缓存编译后的PHP代码,可以减少每次请求时的编译时间,从而提高性能,eAccelerator还支持代码的保护和压缩功能,使得代码更加安全和高效。
问题2:如何验证eAccelerator是否安装成功?
答:你可以通过查看phpinfo()页面或运行php i命令来验证eAccelerator是否安装成功,如果看到了类似于"This program makes use of the Zend Scripting Language Engine: Zend Engine v2.1.0, Copyright (c) 19982006 Zend Technologies"的信息,那么就表示eAccelerator已经成功安装并启用了。