-
- #tar -zxvf ./eaccelerator-0.9.5-beta2.tar.bz2
- #cd eaccelerator-0.9.5-beta2
- #export PHP_PREFIX ="/usr/local"(PHP 설치 디렉터리를 환경 변수로 가져옵니다. FreeBSD 기본값은 /usr/local입니다)
- #$PHP_PREFIX/bin/phpize
- #./configure --enable-eaccelerator= 공유 - -with-php-config=$PHP_PREFIX/bin/php-config
- #make
- #make install
코드 복사
4. ini 파일 구성
설치가 완료되면 php.ini 파일 구성을 시작하겠습니다. eAccelerator는 다음과 같은 두 가지 구성 및 호출 방법을 제공합니다.
Zend 확장 모드로 설치:
-
- #mkdir /tmp/eaccelerator
- #chmod 777 /tmp/eaccelerator
-
코드 복사
5. 설치 결과를 확인합니다.
브라우저를 통해 phpinfo() 페이지를 방문하거나 php -i를 실행하여 다음과 유사한 정보가 표시되면 설치가 성공한 것입니다.
이 프로그램은 Zend 스크립팅 언어 엔진을 사용합니다.
Zend 엔진 v2.1.0, 저작권 (c) 1998-2006 Zend Technologies
eAccelerator v0.9.5-beta2 사용, Copyright (c) 2004-2006 eAccelerator, by eAccelerator
Zend Optimizer3.0.1도 내 컴퓨터에 설치되어 있으므로 표시되는 정보는 다음과 같습니다.
이 프로그램은 Zend 스크립팅 언어 엔진을 사용합니다.
Zend 엔진 v2.1.0, 저작권 (c) 1998-2006 Zend Technologies
eAccelerator v0.9.5-beta2 사용, Copyright (c) 2004-2006 eAccelerator, by eAccelerator
Zend Extension Manager v1.0.10 사용, 저작권 (c) 2003-2006, Zend Technologies 제공
Zend Optimizer v3.0.1 사용, 저작권 (c) 1998-2006, Zend Technologies 제공
eAccelerator의 디버그 옵션을 켜면 로그에서 다음과 유사한 정보를 볼 수 있습니다.
-
- eaccelerator_lock("count");
- eaccelerator_put("count",eaccelerator_get("count") 1)) ;
- ?>
코드 복사
eaccelerator_unlock($key)
$key를 기반으로 잠금 해제
eaccelerator_cache_output($key, $eval_code, $ttl=0)
$ttl 초 동안 $eval_code 코드의 출력을 캐시합니다($ttl 매개변수는 eacclerator_put과 동일합니다).
예를 들어:
eaccelerator_cache_result($key, $eval_code, $ttl=0)
$eval_code 코드의 실행 결과를 $ttl 초 동안 캐시합니다($ttl 매개변수는 eacclerator_put과 동일함).
예를 들어:
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 입니다.
2. eAccelerator를 사용하여 PHP 코드 가속화
eAccelerator의 강력한 성능을 테스트하십시오. (이 코드는 cli 모드에서 유효하지 않을 수 있습니다.)
-
-
- class test_cache {
- var $pro = 'hello';
function test_cache() {
- echo "객체가 생성되었습니다!
n";
- }
- function func() {
- echo ', the world!' ;
- }
- function now($t) {
- echo date('Y-m-d H:i:s', $t);
- }
- }
-
$tt = eaccelerator_get("test_tt");
- if (!$tt)
- {
- $tt = new test_cache;
- eaccelerator_put("test_tt", $tt);
- echo "캐시되지 않음!
n";
- }
- else {
- echo "캐시됨
n";
- }
pro;
- $tt->func();
- $tt->now(time() 86400);
- ?>
-
-
코드 복사
另外,據說在著名的vBulletin 3.60Beta版裡面已經整合了對eAccelerator的支援。
一段來自vBulletin裡面的程式碼
-
-
// ##############
- // ecelerator
/**
- * 用於從eAccelerator 取得和初始化vBulletin 資料儲存的類別
- *
- * @package vBulletin
- * @version $Revision: 0.1 $
- * @date $Date: 2005/06 /12 13:14:18 $
- */
- class vB_Datastore_eAccelerator extends vB_Datastore
- {
- /**
- * 從 eAccelerator 取得資料儲存的內容
- *
- * @param array 要從資料儲存中取得的項目陣列
- *
- * @return void
- */
- function fetch($itemarray) if (!function_exists('eaccelerator_get'))
- {
- trigger_error("eAccelerator not installed", E_USER_ERROR);
- }} defaultitems AS $item)
- {
- $this->do_fetch($item);
- }
if (is_array($itemarray))
- {
- foreach ($itemarray AS $item)
- {
- $this->do_fetch($item);
- }
- }
$this->check_options( );
// set the version number variable
- $this->registry->versionnumber =& $this->registry->options['templateversion'];
- }
/**
- * 從共享記憶體取得資料並偵測錯誤
- *
- * @param string 資料儲存項目的標題
- *
- * @return void
- */
- function do_fetch($title)
- {
- $data = eaccelerator_get($title);
- if ($data === null)
- { // appears its not there, lets grab the data, lock the shared memory and put it in
- $data = '';
- $dataitem = $this->dbobject-$data = '';
- $dataitem = $this->dbobject-$data = '';
- $dataitem = $this->dbobject-$data = '';
- $dataitem = $this->dbobject- >query_first("
- SELECT title, data FROM " . TABLE_PREFIX . "datastore
- WHERE title = '" . $this->dbobject->escape_string($title) ."'
- ")'
- "); >if (!empty($dataitem['title']))
- {
- $data =& $dataitem['data'];
- $this->build($dataitem['title'] , $dataitem['data']);
- }
- }
- $this->register($title, $data);
- }
- /**
- * 更新對應的快取檔案
- *
- * @param string 資料儲存項目的標題
- *
- * @return void
- */
- function build($title, $data)
- {
- if (!function_exists('eaccelerator_put'))
- {
- trigger_error("eAccelerator not installed, Enot);
- eaccelerator_lock($title);
- eaccelerator_put($title, $data);
- eaccelerator_unlock($title);
- }
- }
>複製程式碼
|