正在帮同学的服务器装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); |