PHP编程:PHP缓存减速器:eAccelerator
左手拿着MOTOLOLA右手拿着NOKIA,要多潇洒,有多潇洒,哈哈,终于学会了,但是可能这个时候,又会有人不经意的拍拍肩膀对你说:哥们,别高兴的太早,你还是菜鸟,离学会还差着一大截呢!缓存 eAccelerator README for Linux 简体中文翻译eAccelerator 是一个为 PHP 法式减速的收费开源软件,其极速后果毫不输给 Zend Performance Suite。而且撑持 Linux, FreeBSD, Solaris, MacOS X, Windows等体系。
明天闲来无事,将 README for Linux 文件翻译了出来,供人人参考。
个中装置局部停止了修正,细化了装置进程。
个中翻译不切实的中央还请人人指教:)
【翻译:Nanu (nanu@discuz.com) 】
eAccelerator for PHP
甚么是 eAccelerator ?
eAccelerator 是一个开源而且收费的 PHP 减速器,优化器,编码器,同时也可以为 PHP
供应静态内容缓存。它可以将 PHP 剧本缓存为已编译形态以到达提拔 PHP 剧本运转功能
的目标,因而传统的预编译几近被消弭。eAccelerator 也可以优化 PHP 剧本以提拔 PHP
剧本的履行速度。eAccelerator 可无效下降办事器负载而且进步 PHP 法式速度达 1-10 倍。
TurckMMCache 是 eAccelerator 的前身。
( http://sourceforge.net/project/turckmm-cache/by Dmitry Stogov )
eAccelerator 包括一个 PHP 编码器和加载器。您可使用编码器对 .php 剧本停止编码,
从而可以以非源代码体例宣布您的 PHP 法式。经由编码的 PHP 法式可以运转在任何装置有
PHP 解析情况和 eAccelerator 的站点上,因为编码后的 PHP 法式存储为已编译代码,而且
已编译版本中不包括法式的源代码,因而,经由 eAccelerator 编码的 PHP 法式是不克不及被复原
恢复的。固然,一些外部剧本可以被某些分歧的反编译引擎东西(如 disassemblers, debuggers等)
停止复原恢复,但这并不是是微乎其微的。
eAccelerator 与 Zend Optimizer 加载器兼容。在 php.ini 中,Zend Optimizer 必需在
eAccelerator 以后加载。假如您的站点不运转任何经过 Zend 编码器编码的 PHP 剧本,那末
咱们其实不保举您在装置 eAccelerator 的办事器上装置 Zend Optimizer。
eAccelerator 不克不及运转于 CGI 形式下,但它可以运转于像 lighttpd 相似的 Fast-CGI形式。
以下是一些与 eAccelerator 具有不异功效的产物:
- Zend Performance Suite (http://www.zend.com)
- Alternative PHP Cache (http://pecl.php.net/package/APC)
下载
最新版的 eAccelerator 可以在 Sourceforge 下载:
http://sourceforge.net/projects/eaccelerator/
CVS 开辟版本快照(snapshots)可以在以下地址下载:
http://snapshots,eaccelerator.net
所需情况
Apache 1.3 或更高版本
mod_php 4.1 或更高版本
autoconf
automake
libtool
m4
兼容性
经由用户的利用和呈报,eAccelerator 可以运转在 PHP4 和 PHP5。PHP5.1 今朝尚不克不及完全的
撑持。eAccelerator 可以与 Apache 1.3/2.0、lighttpd、和 IIS 在 Linux、FreeBSD、MacOS X、Solaris 和
Windows 上运转。
疾速装置
您可以在 eAccelerator 站点获得更多有关装置方面的信息。
http://eaccelerator.sourceforge.net/
注重(1):有关 Microsoft Windows 平台的装置信息,请浏览 README.win32 file。
步调 1. 编译 eAccelerator
cd /usr/local/src
wget http://internap.dl.sourceforge.n ... rator-0.9.4.tar.bz2
tar xjvf eaccelerator-0.9.4.tar.bz2
cd eaccelerator-0.9.4.tar.bz2
export PHP_PREFIX="/usr/local/php"
$PHP_PREFIX/bin/phpize
./configure \
--enable-eaccelerator=shared \
--with-php-config=$PHP_PREFIX/bin/php-config
make
您必需在 export 号令中指定 PHP 真实的装置目次地位。该目次地位多是 "/usr" "/usr/local",或
其他地位。
步调 2. 装置 eAccelerator
make install
步调 3. 设置装备摆设 eAccelerator
eAccelerator 可以装置为 Zend 扩大或 PHP 扩大。
关于 eAccelerator 0.9.1 及其以上版本,假如您体系中存在 /etc/php.d 目次,则需求将 eaccelerator.ini
文件复制到该目次中,而且依据需求修正个中的默许设置和数值。
假如体系中不存在 /etc/php.d 目次,则编纂 php.ini 文件(凡是位于 /etc/php.ini)。
装置为 Zend 扩大:
zend_extension="/usr/lib/php4/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.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="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.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"
步调 4. 创立缓存目次
mkdir /tmp/eaccelerator
chomd 0777 /tmp/eaccelerator
设置装备摆设选项
eaccelerator.shm_size
指定 eAccelerator 可以利用的同享内存数目,单元:MB。
"0" 代表操作体系默许。默许值为 "0"。
eaccelerator.cache_dir
用户磁盘缓存的目次。eAccelerator 在该目次中存储预编译代码、session 数据、内容等。
不异的数据也能够存储于同享内存中(以取得更快的存取速度)。默许值为 "/tmp/eaccelerator"。
eaccelerator.enable
开启或封闭 eAccelerator。"1" 为开启,"0" 为封闭。默许值为 "1"。
eaccelerator.optimizer
开启或封闭外部优化器,可以提拔代码履行速度。"1" 为开启,"0" 为封闭。默许值为 "1"。
eaccelerator.debug
开启或封闭调试日记纪录。"1" 为开启,"0" 为封闭。默许值为 "0"。
eaccelerator.check_mtime
开启或封闭 PHP 文件修改反省。"1" 为开启,"0" 为封闭。假如您想要在修正后从头编译 PHP
法式则需求设置为 "1"。默许值为 "1"。
eaccelerator.filter
判别哪些 PHP 文件必需缓存。您可以指定缓存和不缓存的文件类型(如 "*.php *.phtml"等)
假如参数以 "!" 开首,则婚配这些参数的文件被疏忽缓存。默许值为 "",即,一切 PHP 文件
都将被缓存。
eaccelerator.shm_max
当利用 " eaccelerator_put() " 函数时制止其向同享内存中存储过大的文件。该参数指定答应
存储的最大值,单元:字节 (10240, 10K, 1M)。"0" 为不限制。默许值为 "0"。
eaccelerator.shm_ttl
当 eAccelerator 获得新剧本的同享内存巨细掉败时,它将从同享内存中删除一切在
最初 "shm_ttl" 秒内没法存取的剧本缓存。默许值为 "0",即:不从同享内春中删除
任何缓存文件。
eaccelerator.shm_prune_period
当 eAccelerator 获得新剧本的同享内存巨细掉败时,他将试图从同享内存中删除早于
"shm_prune_period" 秒的缓存剧本。默许值为 "0",即:不从同享内春中删除
任何缓存文件。
eaccelerator.shm_only
答应或制止将已编译剧本缓存在磁盘上。该选项对 session 数据和内容缓存有效。默许
值为 "0",即:利用磁盘和同享内存停止缓存。
eaccelerator.compress
答应或制止紧缩内容缓存。默许值为 "1",即:答应紧缩。
eaccelerator.compress_level
指定内容缓存的紧缩品级。默许值为 "9",为最初等级。
eaccelerator.name_sapce
一个一切键(keys)的前缀字符串。假如设置该前缀字符串则答应 .htaccess 或 主设置装备摆设
文件在不异主机上运转两个不异的键名。
eaccelerator.keys
eaccelerator.sessions
eaccelerator.content
判别哪些键(keys)、session 数据和内容将被缓存。可用参数值为:
"shm_and_disk" - 同时在同享内存和磁盘中缓存数据(默许值);
"shm" - 假如同享内存用尽或数据容量大于 "eaccelerator.shm_max"
则在同享内存或磁盘中缓存数据;
"shm_only" - 仅在同享内存中缓存数据;
"disk_only" - 仅在磁盘中缓存数据;
"none" - 制止缓存数据。
eAccelerator 使用法式接口(API)
eaccelerator_put($key, $value, $ttl=0)
将 $value 存储在同享内存中,并存储 $tll 秒。
eaccelerator_get($key)
从同享内存中前往 eaccelerator_put() 函数所存储的缓存数值,假如不存在或已
过时,则前往 null。
eaccelerator_rm($key)
从同享内存中删除 $key。
eaccelerator_gc()
删除一切过时的键(keys)
eaccelerator_lock($lock)
创立一个指命名称的锁(lock)。该锁可以经由过程 eaccelerator_unlock() 函数消除,在恳求
停止时也会主动解锁。例如:
<?php
eaccelerator_lock("count");
eaccelerator_put("count",eaccelerator_get("count")+1));
?>
eaccelerator_unlock($lock)
消除指命名称的锁(lock)。
eaccelerator_set_session_handlers()
装置 eAccelerator session 句柄。
从 PHP 4.2.0 今后,您可以经由过程设置 php.ini 中的 "session.save_handler=eaacelerator"
装置 eAccelerator 句柄。
eaccelerator_cache_output($key, $eval_code, $ttl=0)
在同享内存中缓存$eval_code 的输入,缓存 $ttl 秒。
可以挪用 mmcach_rm() 函数删除不异 $key 的输入。例如:
<?php eaccelerator_cache_output('test', 'echo time(); phpinfo();', 30); ?>
eaccelerator_cache_result($key, $eval_code, $ttl=0)
在同享内存中缓存 $eval_code 的了局,缓存 $ttl 秒。
可以挪用 mmcach_rm() 函数删除不异 $key 的了局。例如:
<?php eaccelerator_cache_output('test', 'time()." Hello";', 30); ?>
eaccelerator_cache_page($key, $ttl=0)
缓存全部页面,且缓存 $ttl 秒。例如:
<?php
eaccelerator_cache_page($_SERVER['PHP_SELF'].'?GET='.serialize($_GET),30);
echo time();
phpinfo();
?>
eaccelerator_rm_page($key)
从缓存中删除由 eaccelerator_cache_page() 函数创立的不异 $key 的页。
eaccelerator_encode($filename)
前往 $filename 文件经由编译后的编码。
eaccelerator_load($code)
加载被 eaccelerator_encode() 函数编码过的剧本。
WEB 界面
可以经由过程 eaccelerator.php 停止基于 WEB 界面的办理。固然,您需求将该文件存储于您的 WEB 站点
目次中。出于平安缘由,建议您对该文件停止平安掌握,包管只要当地 IP 才干读取该文件。
从 2.3.18 版本入手下手,办理界面可以停止暗码回护。从终端号令交运行 eaccelerator_password.php 并
依照以下步调生成暗码:
$ php -q eaccelerator_password.php
更改 eAccelerator WEB 办理界面暗码。(eaccelerator.php)
Enter admin name:admin
New admin password: eaccelerator
Retype new admin password: eaccelerator
在 php.ini 中添加以下内容,而且从头启动 WEB 办事:
eaccelerator.admin.name="admin"
eaccelerator.admin.password="$1$0ScD9gkb$nOEmFerNMvQ576hELeLrG0"
假如在受 HTTPD 暗码回护的目次中寄存 eaccelerator.php,则 eaccelerator 的办理员用户名和暗码
必需分歧。
接洽咱们
您可以接洽咱们以呈报 BUGS、发问或补钉。发送电子邮件给 Bart Vanbrabant
<zoeloelip at users.sourceforge.net>
会HTML吗?会,我能编好几个大表格排板的网页啦! 建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。 个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。 做为1门年轻的语言,php一直很努力。 写的比较杂,因为我也是个新手,不当至于大家多多指正。 Ps:以上纯属原创,如有雷同,纯属巧合 因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax 个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。 php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。 有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。 说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。 使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的 开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。 最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。 其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。 在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。 在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。 环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。 因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax 如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,
页:
[1]