6

サーバーに APC PHP をインストールしました。PHPinfoはそれを示しています。ですが、ちょっと気になったので質問させてください...

サーバーに来る新しい PHP リクエストは自動的に APC を使用して開始されますか、それとも APC を使用するために PHP コードも変更する必要がありますか? 手がかりを教えてください。

ありがとう

4

3 に答える 3

2

PHP は自動的にそれを使用します。キャッシュ アクセラレータを使用するためにコードを変更する必要はまったくありません。

于 2012-12-20T02:01:33.533 に答える
1

APC は自動的に実行されます。モジュールはコードを実行し、バイトコードに変換します。スクリプトを再度呼び出すと、ウェブサーバーはスクリプトを再度実行せず、バイトコードを実行します。

トラフィックが多い場合は、パフォーマンスが大幅に節約されます。

2 つ目の機能は、必要に応じて APC から共有メモリに値を保存できることです。これについては、ドキュメントを読む必要があります。

http://php.net/manual/de/book.apc.php

于 2012-12-20T02:02:50.410 に答える
0

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
于 2012-12-20T08:59:21.180 に答える