Install ZendOptimizer and eaccelerator in Linux

Standard

正在帮同学的服务器装ZendOptimizer和eaccelerator,边装边写.

先装ZendOptimizer,这个没什么好写的,运行 ./install.sh 后有提示,照着做就行了.

eaccelerator有些地方需要注意的,就是先要确定是否有php-devel和gcc,前者包含phpize(用来编译扩展库的),后者不用我多说了吧.

yum install php-devel
yum install gcc
tar xvf eaccelerator-0.9.5.3.tar.tar
cd eaccelerator-0.9.5.3
export PHP_PREFIX="/usr"
$PHP_PREFIX/bin/phpize
./configure --enable-eaccelerator=shared --with-php-config=$PHP_PREFIX/bin/php-config
make
make install
 
vi /etc/php.ini
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"
 
mkdir /tmp/eaccelerator
chmod 777 /tmp/eaccelerator

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() 函数编码过的脚本。

范例

1
2
3
4
5
6
7
8
9
10
11
12
13
//加裁内存  1.php
$sql="select id,songname,singer from DB_SONG where urlstatus=1";
$query=$dbmysql->Query($sql);
while($row=$dbmysql->FetchObject($query))
{
$songid=$row->id;
$keyname=$row->songname;
eaccelerator_put ($keyname, $songid);
}
 
//读内存 2.php
$key=$_GET['name'];
$song_id=eaccelerator_get($key);

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.