仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2046|回复: 19
打印 上一主题 下一主题

[学习教程] PHP编程:PHP缓存减速器:eAccelerator

[复制链接]
谁可相欹 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-4 00:13:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
左手拿着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吗?会,我能编好几个大表格排板的网页啦!
山那边是海 该用户已被删除
沙发
发表于 2015-2-4 09:59:09 | 只看该作者
建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。
不帅 该用户已被删除
板凳
发表于 2015-2-9 22:01:19 | 只看该作者
个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。
若相依 该用户已被删除
地板
发表于 2015-2-10 11:25:58 | 只看该作者
做为1门年轻的语言,php一直很努力。
分手快乐 该用户已被删除
5#
发表于 2015-3-1 09:44:00 | 只看该作者
写的比较杂,因为我也是个新手,不当至于大家多多指正。
蒙在股里 该用户已被删除
6#
发表于 2015-3-7 04:33:38 | 只看该作者
Ps:以上纯属原创,如有雷同,纯属巧合
小妖女 该用户已被删除
7#
发表于 2015-3-10 22:44:19 | 只看该作者
因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax
若天明 该用户已被删除
8#
发表于 2015-3-13 23:23:02 | 只看该作者
个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。
活着的死人 该用户已被删除
9#
发表于 2015-3-20 22:17:13 | 只看该作者
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
简单生活 该用户已被删除
10#
发表于 2015-4-14 16:55:36 | 只看该作者
有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。
爱飞 该用户已被删除
11#
发表于 2015-4-16 13:09:31 | 只看该作者
说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。
飘飘悠悠 该用户已被删除
12#
发表于 2015-4-19 04:30:19 | 只看该作者
使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的
变相怪杰 该用户已被删除
13#
发表于 2015-4-20 11:27:04 | 只看该作者
开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。
小女巫 该用户已被删除
14#
发表于 2015-4-20 22:46:52 | 只看该作者
最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。
灵魂腐蚀 该用户已被删除
15#
发表于 2015-5-2 22:45:43 | 只看该作者
其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。
谁可相欹 该用户已被删除
16#
 楼主| 发表于 2015-6-8 20:07:54 | 只看该作者
在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。
精灵巫婆 该用户已被删除
17#
发表于 2015-6-26 14:09:18 | 只看该作者
在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。
飘灵儿 该用户已被删除
18#
发表于 2015-6-29 21:53:26 | 只看该作者
环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。
冷月葬花魂 该用户已被删除
19#
发表于 2015-7-7 23:35:25 | 只看该作者
因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax
柔情似水 该用户已被删除
20#
发表于 2015-7-9 20:40:53 | 只看该作者
如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 02:17

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表