ホームページ  >  記事  >  バックエンド開発  >  PHP アクセラレータ eAccelerator の構成と使用ガイド

PHP アクセラレータ eAccelerator の構成と使用ガイド

WBOY
WBOYオリジナル
2016-07-25 08:53:16857ブラウズ
  1. #tar -zxvf ./eaccelerator-0.9.5-beta2.tar.bz2
  2. #cd eaccelerator-0.9.5-beta2
  3. #export PHP_PREFIX="/usr/local" (PHP インストール ディレクトリを環境変数、FreeBSD のデフォルトは /usr/local)
  4. #$PHP_PREFIX/bin/phpize
  5. #./configure --enable-eaccelerator=shared --with-php-config=$PHP_PREFIX/bin/php-config
  6. #make
  7. #make install
コードをコピー

4.iniファイルの設定 インストールが完了したら、php.ini ファイルの構成を開始しましょう。eAccelerator には、次の 2 つの構成メソッドと呼び出しメソッドが用意されています。 Zend 拡張モードでインストールします。

  1. #mkdir /tmp/eaccelerator
  2. #chmod 777 /tmp/eaccelerator
コードをコピーします

5. ブラウザから phpinfo() ページにアクセスするか、php -i を実行して、次のような情報が表示されれば、インストールは成功しています。 このプログラムは Zend スクリプト言語エンジンを利用します。 Zend エンジン v2.1.0、著作権 (c) 1998-2006 Zend Technologies eAccelerator v0.9.5-beta2 を使用、著作権 (c) 2004-2006 eAccelerator、eAccelerator 作成 私のマシンには Zend Optimizer3.0.1 もインストールされているため、表示される情報は次のとおりです。 このプログラムは Zend スクリプト言語エンジンを利用します。 Zend エンジン v2.1.0、著作権 (c) 1998-2006 Zend Technologies eAccelerator v0.9.5-beta2 を使用、著作権 (c) 2004-2006 eAccelerator、eAccelerator 作成 Zend Extension Manager v1.0.10 を使用、著作権 (c) 2003-2006、Zend Technologies 製 Zend Optimizer v3.0.1 を使用、著作権 (c) 1998-2006、Zend Technologies 製 eAccelerator のデバッグ オプションをオンにすると、ログに次のような情報が表示されます。

  1. eaccelerator_lock("count");
  2. eaccelerator_put("count",eaccelerator_get("count")+1));
  3. ?>
コードをコピー

eaccelerator_unlock( $key) $key に基づいてロックを解除します

eaccelerator_cache_output($key, $eval_code, $ttl=0) $eval_code コードの出力を $ttl 秒間キャッシュします ($ttl パラメーターは eacclerator_put と同じです)。 例えば:

コードをコピー
eaccelerator_cache_result($key, $eval_code, $ttl=0) Cache_output と同様に、$eval_code コードの実行結果を $ttl 秒間キャッシュします ($ttl パラメータは eacclerator_put と同じです)。 例えば:

コードをコピー
eaccelerator_cache_page($key, $ttl=0) ) 現在のページ全体を $ttl 秒間キャッシュします。 例えば:

    eaccelerator_cache_page($_SERVER['PHP_SELF'].'?GET='.serialize($_GET),30);
  1. echo time();
  2. phpinfo();
  3. ?> ;
コードをコピー
eaccelerator_rm_page($key) eaccelerator_cache_page() で実行されるキャッシュを削除します。パラメータも $key です

2. eAccelerator を使用して PHP コードを高速化する eAccelerator の強力な能力をテストします: (このコードは cli モードでは有効ではない可能性があります)

    class test_cache {

  1. var $pro = 'hello';

  2. {

  3. echo "オブジェクトが作成されました!< ;br>n";
  4. }
  5. function func() {
  6. echo '、世界!';
  7. }
  8. function now($t) {
  9. echo date('Y-m-d H:i:s', $t);
  10. }
  11. }

  12. $tt = eaccelerator_get("test_tt");

  13. if (!$tt)
  14. {
  15. $tt = new test_cache;
  16. eaccelerator_put("test_tt", $tt) ;
  17. echo "キャッシュされていません!
    n";
  18. }
  19. else {
  20. echo "キャッシュされました
    n";
  21. }

  22. echo $tt->pro; $tt->func();

  23. $tt->now(time() + 86400);
  24. ?>
  25. コードをコピー

さらに、eAccelerator のサポートは有名な vBulletin 3.60Beta バージョンに統合されたと言われています。 vBulletin のコードの一部

  1. // #############

  2. // eAccelerator

  3. /**

  4. * eAccelerator から vBulletin データストアを取得して初期化するためのクラス
  5. *
  6. * @package vBulletin
  7. * @version $Revision: 0.1 $
  8. * @date $Date: 2005/06/12 13:14:18 $
  9. */
  10. class vB_Datastore_eAccelerator extends vB_Datastore
  11. {
  12. /**
  13. * eAccelerator からデータストアの内容を取得します
  14. *
  15. * @param array データストアから取得する項目の配列
  16. *
  17. * @return void
  18. */
  19. function fetch($itemarray)
  20. {
  21. if (!function_exists('eaccelerator_get'))
  22. {
  23. trigger_error("eAccelerator がインストールされていません", E_USER_ERROR)
  24. } < ;/p>
  25. foreach ($this->defaultitems AS $item)

  26. {
  27. $this->do_fetch($item)
  28. }

  29. if ( is_array ($itemarray))

  30. {
  31. foreach ($itemarray AS $item)
  32. {
  33. $this->do_fetch($item)
  34. }
  35. }

    $this-> ();

  36. // バージョン番号変数を設定します

  37. $this->registry->versionnumber =& $this->registry->options['templateversion']; }

  38. /**

  39. * 共有メモリからデータを取得し、エラーを検出します
  40. *
  41. * @param データストア項目の文字列タイトル
  42. *
  43. * @return void
  44. */
  45. function do_fetch($title)
  46. {
  47. $data = eaccelerator_get($title);
  48. if ($data === null)
  49. { // そこにはないようです。データを取得し、共有メモリをロックして
  50. $data = '';
  51. $dataitem = $this->dbobject->query_first("
  52. SELECT title, data FROM " . TABLE_PREFIX . "データストア
  53. title = '" . $this->dbobject->escape_string($title) ."'
  54. ");
  55. $data =& $dataitem['data'];
  56. $this->build($dataitem['title'], $dataitem['data']);
  57. }
  58. }
  59. $this->register ( $title, $data);
  60. }
  61. /**
  62. * 適切なキャッシュ ファイルを更新します
  63. *
  64. * @param データストア アイテムの文字列タイトル
  65. *
  66. * @return void
  67. */
  68. function build($title, $data)
  69. {
  70. if (!function_exists('eaccelerator_put'))
  71. {
  72. trigger_error("eAccelerator がインストールされていません", E_USER_ERROR);
  73. }
  74. eaccelerator_lock($title);
  75. eaccelerator_put($title, $data);
  76. eaccelerator_unlock($title);
  77. }
  78. }

  79. コードをコピー
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。