サーバーに APC PHP をインストールしました。PHPinfoはそれを示しています。ですが、ちょっと気になったので質問させてください...
サーバーに来る新しい PHP リクエストは自動的に APC を使用して開始されますか、それとも APC を使用するために PHP コードも変更する必要がありますか? 手がかりを教えてください。
ありがとう
PHP は自動的にそれを使用します。キャッシュ アクセラレータを使用するためにコードを変更する必要はまったくありません。
APC は自動的に実行されます。モジュールはコードを実行し、バイトコードに変換します。スクリプトを再度呼び出すと、ウェブサーバーはスクリプトを再度実行せず、バイトコードを実行します。
トラフィックが多い場合は、パフォーマンスが大幅に節約されます。
2 つ目の機能は、必要に応じて APC から共有メモリに値を保存できることです。これについては、ドキュメントを読む必要があります。
apc が存在する場合は、それが使用されます。のデフォルト値apc.enabled
が False でない限り、phpinfo で確認してください。
有効な設定が OK の場合、最初の apc の使用はオペコードになります。PHP スクリプトの「コンパイル済み」バージョンを保存します。現在、この動作は、apc のいくつかの設定をオンにすることで大幅に強化できます (ファイル アクセスごとにソース コードの変更をチェックしないようにするなど)。
APC には、アプリケーションの永続性/キャッシュ ストレージとして使用する 2 つ目の大きな機能もあります。しかし、データベースを使用しているかのように、アプリケーションに特定のアプリケーションの指示が必要です。これらの機能を確認してください。
APC最適化を実際に有効にするには、すべての APC 設定を確認する必要があります。apc.shm_size
これらは、APC メモリのサイズの設定を確認するのに最も役立ち、apc.shm_segments
すべての仮想ホストで共有されます。しかし、これらの基本設定の後に、virtualhost/application (php_value 命令を使用する場所) を確認する必要があるいくつかの事項を以下に示します。
アクティブ化された各設定を理解し、ドキュメントを読む必要があることに注意してください。そうしないと、ソースコードの変更がphpによって読み取られないため、開発に時間を費やすことになります。
# Activate apc
apc.enabled =1
# Optimisation of include/require_once calls
apc.include_once_override =1
# transform paths in absolute ones (no effect if apc.stat is not 0),
# files from stream wrappers (extended includes)
# won't be cached if this is activated as they cannot be used with php's realpath()
apc.canonicalize =1
# In production set it to 0, then file changes won't be observed before
# apache is restarted,
# significant boost, else file time is stated at each access (needed at 1 in dev)
apc.stat =0
# avoid problems with rsync or svn not modifying mtime but only ctime
# so if you're in production set this to 0, like for the previous one
apc.stat_ctime =0
# deprecated option: apc.optimization not available anymore
# apc.optimization =0
# inform apc on number of files of the application
apc.num_files_hint =2000
# inform apc on the number of cache variables
apc.user_entries_hint =100
# cache lifetime managmenent ----------------
# time (s) we can stay on the cache even when the cache is full -- Cache full count --
# that means Garbage Collector is never inactivating theses datas before this time is over
# >0 -> old data could stay in the cache while new data want's to come, if no data is deprecated
# 7200 -> entries older than 2 hours will be thrown to make some place
# 0 -> emptying full cache when full
apc.ttl =0
apc.user_ttl =0
# this one is the same but you should note this this prevent Garbage collecting
# after each source change.
apc.gc_ttl =0
# What to cache ? ----------------------------
# could be used to prevent some caching on specific files
# but it's better to cache often used files, isn't it? at least in production
#apc.filters ="-config.php-.ini"
# default to 1M, files bigger than that won't be cached
apc.max_file_size ="5M"
# various things -------------------------------
# only one process caching a same file (beter than apc.slam_defense)
php_fla apc.write_lock =1
# prevents caching half written files (by cp for example) by waiting x seconds
# for new files caching. set it to 0 if using only rsync or mv
apc.file_update_protection =2
# newest versions of APC only
# adding a lazy loading capabilities, so you can parse a lot of files
# and only used things are cached
#apc.lazy_functions =1
#apc.lazy_classes =1