Alternative PHP Cache (APC) は、無料で公開されている、PHP 用に最適化されたコード キャッシュです。これは、PHP 中間コードをキャッシュおよび最適化するための、無料でオープンかつ堅牢なフレームワークを提供するために使用されます。
APC の公式 Web サイトはhttp://pecl.php.net/package/apcです。Windows
の場合
、拡張モジュールのダウンロード アドレスは http://www.sitebuddy.com/php/accelerators/apc_windows_binaries_builds です。
c:tmp ディレクトリが必要であり、このディレクトリは Web サーバー プロセスによって書き込み可能である必要があります。
1.
PHP 拡張機能として
インストールします。 2.
apc.enabled boolean
apc.optimization 最適化
オプションを設定します。PHP.ini
設定オプションの詳細な説明
[APC]
; 代替 PHP キャッシュは、PHP 中間ファイルのキャッシュと最適化に使用されます。 code
apc.cache_by_default = On
;SYS
; デフォルトですべてのファイルのバッファリングを有効にするかどうか。
; Off に設定し、プラス記号で始まる apc.filters ディレクティブと一緒に使用すると、ファイルはフィルターに一致する場合にのみキャッシュされます。
apc.enable_cli = Off
;SYS
; CLI バージョンで APC 機能を有効にするかどうかは、テストとデバッグの目的でのみこのコマンドをオンにします。
apc.enabled = On
; APC を有効にするかどうか。APC が静的に PHP にコンパイルされている場合、これが唯一の方法です。
apc.file_update_protection = 2
;SYS
; 実行中のサーバー上のファイルを変更する場合は、アトミック操作を実行する必要があります。
; つまり、最初に一時ファイルに書き込み、次にファイルの名前を最終的な名前に変更 (mv) します。
; テキスト エディターや cp や tar などのプログラムはこのように動作しないため、不完全なファイルがバッファリングされる可能性があります。
; デフォルト値 2 は、ファイルにアクセスするときに、変更時間がアクセス時間から 2 秒未満であることが判明した場合、バッファリングは実行されないことを意味します。
; 運が悪い訪問者は破損したコンテンツを受け取る可能性がありますが、その悪影響はキャッシュによって増幅されません。
; すべての更新操作がアトミックであることを確認できる場合は、0 を指定してこの機能をオフにすることができます。
; IO 操作が多いためにシステムの更新が遅い場合は、この値を増やす必要がある場合があります。
apc.filters =
;SYS
; POSIX 拡張正規表現のカンマ区切りのリスト。
; ソース ファイル名がいずれかのパターンに一致する場合、ファイルはキャッシュされません。
; 一致するために使用されるファイル名は、絶対パスではなく、include/require に渡されたファイル名であることに注意してください。
; 正規表現の最初の文字が「+」の場合は、その式に一致するファイルがキャッシュされることを意味し、
最初の文字が「-」の場合は、一致したファイルはキャッシュされません。 「-」はデフォルト値であり省略可能です。
apc.ttl = 0
;SYS
; キャッシュ エントリがバッファ内に存在できる秒数。 0 はタイムアウトしないことを意味します。推奨値は7200~36000です。
; 0 に設定すると、バッファが古いキャッシュ エントリでいっぱいになり、新しいエントリがキャッシュされなくなる可能性があります。
apc.user_ttl = 0
;SYS
; apc.ttl と似ていますが、各ユーザーの推奨値は 7200 ~ 36000 です。
; 0 に設定すると、バッファが古いキャッシュ エントリでいっぱいになり、新しいエントリがキャッシュされなくなる可能性があります。
apc.gc_ttl = 3600
;SYS
; キャッシュ エントリがガベージ コレクション テーブルに存在できる秒数。
; この値は、キャッシュされたソース ファイルの実行中にサーバー プロセスがクラッシュし
、ソース ファイルが変更された場合でも、この TTL 値に達するまで古いバージョンに割り当てられたメモリが再利用されないようにするための安全策を提供します。
; この機能を無効にするには、0 に設定します。
apc.include_once_override = Off
;SYS
; Off のままにしてください。そうしないと、予期しない結果が生じる可能性があります。
apc.max_file_size = 1M
;SYS
; このサイズより大きいファイルのキャッシュを無効にします。
apc.mmap_file_mask =
; SYS
; --enable-mmap (デフォルトで有効) を使用して MMAP サポートが APC 用にコンパイルされた場合、
ここでの値は mmap モジュールに渡される mktemp スタイルのファイル マスクです (推奨値は "/tmp") /apc.XXXXX")。
; このマスクは、メモリ マップ領域をファイル バックアップするか共有メモリ バックアップするかを決定するために使用されます。
; 直接ファイルバックアップメモリマッピングの場合は、「/tmp/apc.XXXXXX」(正確に 6 つの X)に設定します。
; POSIX スタイルの shm_open/mmap を使用するには、「/apc.shm.XXXXXX」に設定する必要があります。
; 「/dev/zero」に設定して、匿名でマップされたメモリにカーネルの「/dev/zero」インターフェイスを使用することもできます。
; このディレクティブを定義しないと、匿名マッピングの使用が強制されます。
apc.num_files_hint = 1000
; SYS
; Web サーバーに含める、または要求できるさまざまなソース ファイルのおおよその数 (推奨値は 1024 ~ 4096)。
; よくわからない場合は、0 に設定してください。この設定は主に、数千のソース ファイルを含むサイトに使用されます。
apc.optimization = 0
; 最適化レベル (推奨値は 0)。
; 正の整数値はオプティマイザーを有効にし、値が大きいほどより積極的な最適化を使用します。
; 値を大きくすると、速度の改善が非常に限定される可能性がありますが、現在は実験段階です。
apc.report_autofilter = Off
;SYS
; 早期/遅延バインディングの理由により自動的にキャッシュされないすべてのスクリプトを記録するかどうか。
apc.shm_segments = 1
;SYS
; コンパイラ バッファに割り当てられる共有メモリ ブロックの数 (推奨値は 1)。
; APC が共有メモリを使い果たし、apc.shm_size ディレクティブがシステムで許容される最大値に設定されている場合は
、この値を増やしてみてください。
apc.shm_size = 30
; SYS
; 各共有メモリ ブロックのサイズ (MB 単位、推奨値は 128 ~ 256)。
; 一部のシステム (ほとんどの BSD バリアントを含む) のデフォルトの共有メモリ ブロック サイズは非常に小さいです。
apc.slam_defense = 0
;SYS (この命令の使用には反しており、apc.write_lock 命令を使用することをお勧めします)
; 非常にビジーなサーバーでは、サービスの開始またはファイルの変更
が原因である可能性があります
。複数のプロセスが同時にファイルをキャッシュしようとすると、競合状態が発生します。
; このディレクティブは、キャッシュされていないファイルを処理するときにプロセスがキャッシュ手順をスキップする割合を設定するために使用されます。
; たとえば、これを 75 に設定すると、キャッシュされていないファイルが見つかった場合に 75% の確率でキャッシュされないため、衝突の可能性が低くなります。
; この機能を無効にするには、0 に設定することをお勧めします。
apc.stat = On
;SYS
; スクリプト更新チェックを有効にするかどうか。
; このディレクティブの値を変更する場合は十分に注意してください。
; デフォルト値 On は、スクリプトが要求されるたびに更新されたかどうかを APC がチェックし、
更新された場合はコンパイルされたコンテンツを自動的に再コンパイルしてキャッシュすることを示します。ただし、これを行うとパフォーマンスに悪影響が生じます。
; Off に設定すると、チェックは実行されないため、パフォーマンスが大幅に向上します。
; ただし、更新されたコンテンツを有効にするには、Web サーバーを再起動する必要があります。
; このディレクティブは include/require ファイルにも有効です。
ただし、相対パスを使用する場合、APC は include/require するたびにファイルの場所を確認する必要がある
ことに注意してください
。; 絶対パスを使用するとチェックがスキップされる可能性があるため、include/require 操作には絶対パスを使用することをお勧めします。
apc.user_entries_hint = 100
;SYS
; num_files_hint ディレクティブに似ていますが、ユーザーごとに異なります。
; よくわからない場合は、0 に設定してください。
apc.write_lock = On
;SYS
; 書き込みロックを有効にするかどうか。
; 非常に負荷の高いサーバーでは、サービスの開始時でもファイルの変更時でも、
複数のプロセスが同時にファイルをキャッシュしようとすると、競合状態が発生する可能性があります。
; 競合状態を回避するには、このディレクティブを有効にします。
apc.rfc1867 = Off
;SYS
; このディレクティブをオンにすると、ファイル フィールドの直前に APC_UPLOAD_PROGRESS フィールドを含むアップロード ファイルごとに
、APC は、upload_ のユーザー キャッシュ エントリ (つまり、APC_UPLOAD_PROGRESS フィールドの値) を自動的に作成します。
3. 関数
apc_cache_info - APC のデータ ストアからキャッシュされた情報 (およびメタデータ) を取得します。
apc_clear_cache - APC キャッシュをクリアします
apc_define_constants - 後で取得および一括定義するために一連の定数を定義します
apc_delete - 保存された変数をキャッシュから削除します
apc_fetch - 保存された変数をキャッシュからフェッチします
apc_load_constants - キャッシュから一連の定数をロードします
apc_sma_info - APC の共有メモリ割り当て情報を取得します。
apc_store - データ ストアに変数をキャッシュする
apc の使用法は比較的単純で、以下に示す関数がいくつかあるだけです。
apc_cache_info () はキャッシュ情報を返します。
apc_clear_cache() は APC キャッシュの内容をクリアします。
デフォルト (パラメータなし) では、システム キャッシュのみがクリアされます。ユーザー キャッシュをクリアするには、「user」パラメータを使用します。
apc_define_constants (string key, array constants [, bool case_sensitive]) 配列定数を定数としてキャッシュに追加します。
apc_load_constants (文字列キー)。
定数キャッシュを削除します。
apc_store (文字列キー、混合変数 [, int ttl] )。
データをキャッシュに保存します。
apc_fetch(文字列キー)。
apc_store によって保存されたキャッシュ コンテンツ apc_delete (文字列キー) を取得します
。
apc_store で保存したコンテンツを削除します。
Apc 管理:
pecl.php.net に移動して apc ソース コード パッケージをダウンロードすると、apc.php が存在します。それを Web サーバーがアクセスできる場所にコピーし、参照してアクセスします。
管理インターフェイス機能は次のとおりです。
1. データの更新
2. ホスト統計の表示
3. システム キャッシュ エントリ
4. ユーザー キャッシュ エントリ
5. バージョン チェック