Heim > php教程 > php手册 > Hauptteil

PHP缓存加速器:eAccelerator

WBOY
Freigeben: 2016-06-21 09:06:45
Original
1068 Leute haben es durchsucht

缓存

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() 函数解除,在请求
        结束时也会自动解锁。例如:
                        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 的输出。例如:
       

eaccelerator_cache_result($key, $eval_code, $ttl=0)
        在共享内存中缓存 $eval_code 的结果,缓存 $ttl 秒。
        可以调用 mmcach_rm() 函数删除相同 $key 的结果。例如:
       

eaccelerator_cache_page($key, $ttl=0)
        缓存整个页面,且缓存 $ttl 秒。例如:
                        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


 



Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage