蒙面人生蒙面人生

PHP免费加速工具eAccelerator

eAccelerator概念:
eAccelerator 是一个免费开源的PHP加速、优化、编译和动态缓存的项目,它可以通过缓存PHP代码编译后的结果来提高PHP脚本的性能,使得一向很复杂和离我们很远的PHP脚本编译问题完全得到解决。通过使用eAccelerator,可以优化你的PHP代码执行速度,降低服务器负载,可以提高PHP应用执行速度最高达10倍。

原理:
eAccelerator 通过把经过编译后的PHP代码缓存到共享内存中,并在用户访问的时候直接调用从而起到高效的加速作用。它的效率非常高,从创建共享内存到查找编译后的代码都在非常短的时间内完成,对于不能缓存到共享内存中的文件和代码,eAccelerator还可以把他们缓存到系统磁盘上。
eAccelerator 同样还支持PHP代码的编译和解释执行,你可以通过encoder.php脚本来对php代码进行编译达到保护代码的目的,经过编译后的代码必须运行在安装了eAccelerator的环境下。eAccelerator编译后的代码不能被反编译,它不象其他一些编译工具那样可以进行反编译,这将使得代码更加安全和高效。
注意:在共享内存里面寻找编译好的PHP程序时,会在很短的时间内产生一些锁定,所以一个程序可以被多个进程同时执行。不适合放入共享内存的文件将被缓存到硬盘上。

配置:
eaccelerator.enable
决定eAccelerator是否有效。“1”为有效,“0”为无效,默认为“1”。
eaccelerator.optimizer
是否使用内置的优化工具加速代码的执行。“1”为是,“0”为否,默认为“1”。
eaccelerator.debug
是否记录eAccelerator debug log。“1”为是,“0”为否,默认为“0”。
eaccelerator.shm_size
eAccelerator使用共享内存的总数。单位是MB,设置为“0”,则为操作系统默认值,默认为“0”。
eaccelerator.check_mtime
是否检查php程序更新时间。“1”为是,“0”为否。如果你想改变php程序后重编译程序到共享内存,那就应该设置为“1”,默认为“1”,如果设置为“0”,那么修改php脚本后的产生的效果将不被显示。
eaccelerator.filter
决定哪些php文件被缓存。你可能需要指定哪些文件(如:"*.php *.phtml")需要被缓存。如果在文件前加上“!”,那么符合条件的文件将被忽略。默认为"",这以为着所有php文件都会被缓存。
eaccelerator.shm_max
设置诸如“eaccelerator_put()”之类的函数能往共享内存里面加载数据的大小。单位为MB。“0”为不限制,默认为“0”。
eaccelerator.shm_ttl
当共享内存空间已满,将删除在“shm_ttl”秒前没有使用的程序。默认为0,为不删除任何文件。
eaccelerator.shm_prune_period
共享内存已满。前一次操作是在shm_prune_period秒之前,那么这一次将删除所有的旧程序。默认为“0”,意为不删除任何程序。
eaccelerator.shm_only
是否把编译后程序缓存到硬盘上。这个选项对session数据和内容(content)缓存无效。默认为“0”,意为同时使用共享内存和硬盘做缓存。
eaccelerator.allowed_admin_path
允许得到管理信息和管理操作的脚本路径。复制control.php文件到你的跟目录下,你可以在control.php文件中设置用户名和密码以进入控制面板。
eaccelerator.keys
eaccelerator.sessions
eaccelerator.content
缓存方式,这些可能的值是:

"shm_and_disk"

- 缓存数据在共享内存和硬盘上(默认值)

"shm"

- 缓存数据在共享内存,如果共享内存已满或者提交的数据大小超过eaccelerator.shm_max,则存储在硬盘上。

"shm_only"

- 只缓存数据在共享内存

"disk_only"

- 只缓存数据在硬盘

"none"

- 不缓存数据
eaccelerator.name_space
一个对所有键值假拟的字符串。通过在.htaccess文件中设置的这个值,允许两个应用使用相同的键值运行在同一个主机上。否则不同虚拟主机的键值不会相互影响的,所以不同虚拟主机一般有各自的:control.php。

函数:
eaccelerator_put($key, $value, $time);
将 $value 以 $key 为键名存进缓存,$time 为0或不指定时,表示不限时,为其它数字时,单位是秒。返回bool值。

eaccelerator_get($key);
根据 $key 从缓存中返回相应的 eaccelerator_put() 存进去的数据,如果这项缓存已经过期或不存在那么返回值是 NULL。

eaccelerator_rm($key);
根据 $key 移除缓存

eaccelerator_gc();
移除清理所有已过期的 $key

eaccelerator_lock("count");//为 $key 加上锁定操作,以保证多进程多线程操作时数据的同步。
eaccelerator_put("count",eaccelerator_get("count")+1));
eaccelerator_unlock("count");//根据 $key 释放锁

eaccelerator_cache_output($key, $php_code, $time);
将 $php_code 代码的执行输出缓存 $time 秒,($time参数同 eacclerator_put),例如:
eaccelerator_cache_output('test', 'echo time(); phpinfo();', 5);

eaccelerator_cache_result($key, $php_code, $time);
将 $php_code 代码的执行结果缓存 $time 秒,($time参数同 eacclerator_put),例如:
echo eaccelerator_cache_result('test', 'time()." Hello";', 10);

eaccelerator_cache_page($key, $time);
将当前整页缓存 $time 秒($time参数同 eacclerator_put)

eaccelerator_rm_page($key);
删除由 eaccelerator_cache_page() 执行的缓存,参数也是 $key。

eaccelerator_caching ($bool);
是否开启eaccelerator缓存,$bool可以为TRUE或FALSE。这个操作具有全局性,一个脚本设置后全局有效,所以并不常用。

eaccelerator_optimizer ($bool);
是否开启eaccelerator优化,$bool可以为TRUE或FALSE。这个操作具有全局性,一个脚本设置后全局有效,所以并不常用。

eaccelerator_info();
返回关于eaccelerator信息的数组。

eaccelerator_list_keys()
返回包含所有键名的缓存信息的数组,包括过期的键名。包含创建时间、失效时间、是否失效等等。

eaccelerator_clear()
清除缓存,是全部。相当于重启服务器对eaccelerator的影响,即清除所有在共享内存及硬盘中的缓存。

eaccelerator_clean()

清理缓存,清理过期的缓存。

本原创文章未经允许不得转载 | 当前页面:蒙面人生 » PHP免费加速工具eAccelerator

评论