PHP 8.4.0 RC4 available for testing

実行時設定

php.ini の設定により動作が変化します。

この表は、WinCache 拡張モジュールが提供する設定項目をまとめたものです。

WinCache の設定オプション
名前 デフォルト 最小 最大 変更可能 変更履歴
wincache.fcenabled "1" "0" "1" INI_ALL WinCache 1.0.0 以降で使用可能
wincache.fcenabledfilter "NULL" "NULL" "NULL" INI_SYSTEM WinCache 1.0.0 以降で使用可能
wincache.fcachesize "24" "5" "255" INI_SYSTEM WinCache 1.0.0 以降で使用可能
wincache.fcndetect "1" "0" "1" INI_SYSTEM WinCache 1.1.0 以降で使用可能
wincache.maxfilesize "256" "10" "2048" INI_SYSTEM WinCache 1.0.0 以降で使用可能
wincache.ocenabled "1" "0" "1" INI_ALL WinCache 1.0.0 以降で使用可能、2.0.0.0 で削除
wincache.ocenabledfilter "NULL" "NULL" "NULL" INI_SYSTEM WinCache 1.0.0 以降で使用可能、2.0.0.0 で削除
wincache.ocachesize "96" "15" "255" INI_SYSTEM WinCache 1.0.0 以降で使用可能、2.0.0.0 で削除
wincache.filecount "4096" "1024" "16384" INI_SYSTEM WinCache 1.0.0 以降で使用可能
wincache.chkinterval "30" "0" "300" INI_SYSTEM WinCache 1.0.0 以降で使用可能
wincache.ttlmax "1200" "0" "7200" INI_SYSTEM WinCache 1.0.0 以降で使用可能
wincache.enablecli 0 0 1 INI_SYSTEM WinCache 1.0.0 以降で使用可能
wincache.ignorelist NULL NULL NULL INI_ALL WinCache 1.0.0 以降で使用可能
wincache.namesalt NULL NULL NULL INI_SYSTEM WinCache 1.0.0 以降で使用可能
wincache.ucenabled 1 0 1 INI_SYSTEM WinCache 1.1.0 以降で使用可能
wincache.ucachesize 8 5 85 INI_SYSTEM WinCache 1.1.0 以降で使用可能
wincache.scachesize 8 5 85 INI_SYSTEM WinCache 1.1.0 以降で使用可能
wincache.rerouteini NULL NULL NULL INI_SYSTEM WinCache 1.2.0 以降で使用可能。1.3.7 で削除。
wincache.reroute_enabled 1 0 1 INI_SYSTEM|INI_PERDIR WinCache 1.3.7 以降で使用可能
wincache.srwlocks 1 0 1 INI_SYSTEM WinCache 1.3.6.3 以降で使用可能、2.0.0.0 で削除
wincache.filemapdir NULL NULL NULL INI_SYSTEM WinCache 1.3.7.4 以降で使用可能
INI_* モードの詳細および定義については どこで設定を行うのか を参照してください。

以下に設定ディレクティブに関する 簡単な説明を示します。

wincache.fcenabled bool
ファイルキャッシュ機能を有効あるいは無効にします。
wincache.fcenabledfilter string
ファイルキャッシュ有効あるいは無効にする IIS ウェブサイト識別子の一覧を、 カンマ区切りで指定します。この設定は wincache.fcenabled との組み合わせで機能します。 wincache.fcenabled が 1 の場合は、 wincache.fcenabledfilter のファイルキャッシュが無効になります。 wincache.fcenabled が 0 の場合は wincache.fcenabledfilter のファイルキャッシュが有効になります。
wincache.fcachesize int
ファイルキャッシュに割り当てる最大メモリ容量 (メガバイト単位) を指定します。 キャッシュされたファイルの総容量がこの設定値を超えると、 いちばん古いファイルから順にファイルキャッシュから取り除かれます。
wincache.fcndetect bool
ファイルの変更通知検出機能を有効あるいは無効にします。 ファイル変更通知がサポートされているときは、対応するファイルがファイスシステム上で変更されるとすぐに opcode キャッシュおよびファイルキャッシュも更新します。 ファイル変更通知をサポートしていないとき (ネットワークファイル共有を使っている場合など) は、 wincache.chkinterval で指定した間隔ごとに wincache がファイル更新を確認します。
wincache.maxfilesize int
キャッシュする個々のファイルの最大サイズ (キロバイト単位) を指定します。 この大きさを超えるサイズのファイルはキャッシュされません。 この設定は、ファイルにのみ適用されます。
wincache.ocenabled bool
警告

このオプションは 2.0.0.0 で削除されました。

opcode キャッシュ機能を有効あるいは無効にします。
wincache.ocenabledfilter string
opcode キャッシュ有効あるいは無効にする IIS ウェブサイト識別子の一覧を、 カンマ区切りで指定します。この設定は wincache.ocenabled との組み合わせで機能します。 wincache.ocenabled が 1 の場合は、 wincache.ocenabledfilter に指定したサイトの opcode キャッシュを無効にします。 wincache.ocenabled が 0 の場合は、 wincache.ocenabledfilter に指定したサイトの opcode キャッシュを有効にします。 このオプションは 2.0.0.0 で削除されました。
wincache.ocachesize int
警告

このオプションは 2.0.0.0 で削除されました。

opcode キャッシュに割り当てる最大メモリ容量 (メガバイト単位) を指定します。 キャッシュされた opcode の総容量がこの設定値を超えると、 いちばん古い opcode から順に opcode キャッシュから取り除かれます。 opcode キャッシュのサイズは、少なくともファイルキャッシュの三倍以上でなければならないことに注意しましょう。 そうなっていなければ、opcode キャッシュのサイズが自動的に拡張されます。
wincache.filecount int
この拡張モジュールがどれくらいの数のファイルをキャッシュすることを想定しているのかを指定し、 起動時に適切なサイズのメモリを確保できるようにします。ファイルの数がこの設定値を超えると、 WinCache は必要に応じてさらにメモリを確保します。
wincache.chkinterval int
ファイルの変更チェックとそれに伴うキャッシュの更新を何秒間隔で行うかを指定します。 0 にすると、キャッシュの更新機能が無効になります。 その場合は、キャッシュエントリが scavenger で削除されたり IIS アプリケーションプールがリサイクルされたり wincache_refresh_if_changed 関数がコールされたりしない限り ファイルの変更がキャッシュに反映されなくなります。
wincache.ttlmax int
未使用状態のキャッシュエントリの最大生存期間 (秒単位) を定義します。 これを 0 にすると、キャッシュの scavenger を無効にします。 そのため、IIS ワーカープロセスが生き続ける限りキャッシュエントリは削除されなくなります。
wincache.enablecli bool
PHP がコマンドライン (CLI) モードで動いているときのキャッシュを有効にするかどうかを設定します。
wincache.ignorelist string

この拡張モジュールでキャッシュをしないファイルの一覧を定義します。 ファイルリストにはファイル名のみを指定し、パイプ記号 "|" で区切ります。

例1 wincache.ignorelist の例

wincache.ignorelist = "index.php|misc.php|admin.php"

wincache.namesalt string
この拡張モジュールが使うオブジェクトを共有メモリに格納する際に、 そのオブジェクトの名前に使う文字列を定義します。 IIS ワーカープロセス内の別のアプリケーションとの間で名前の衝突を起こさないようにするために、 これを使います。namesalt 文字列の長さは最大 8 文字までです。
wincache.ucenabled bool
ユーザーキャッシュ機能を有効あるいは無効にします。
wincache.ucachesize int
ユーザーキャッシュに割り当てる最大メモリ容量 (メガバイト単位) を指定します。 ユーザーキャッシュに格納された変数のサイズがこの設定値を超えると、 いちばん古い変数から順にキャッシュから取り除かれます。
wincache.scachesize int
セッションキャッシュに割り当てる最大メモリ容量 (メガバイト単位) を指定します。 セッションキャッシュに格納されたデータのサイズがこの設定値を超えると、 いちばん古いデータから順にキャッシュから取り除かれます。
wincache.rerouteini string
警告

このオプションは 1.3.7 で削除されました。1.3.7 以降で同様の機能を使うには、wincache.reroute_enabled を参照ください。

reroute.ini ファイルへの絶対パスあるいは相対パスを指定します。 このファイルには、同等の WinCache 関数で実装を置き換える PHP 関数の一覧を記述します。 相対パスで指定した場合は、php-cgi.exe の場所を基準としたパスとみなします。
wincache.reroute_enabled bool
ファイルキャッシュを用いたファイル入出力関数群のリルートを有効あるいは無効にします。
wincache.srwlocks bool
警告

このオプションは 2.0.0.0 で削除されました。

共有のリーダーロック/ライターロックを有効あるいは無効にします。WinCache におけるデッドロックのトラブルシューティングの際には、無効にしておくと便利です。
wincache.filemapdir string
WinCache が共有メモリセグメント用の一時ファイルを格納するために使うディレクトリへの絶対パスを指定します。 このディレクトリはローカルマシン上のものでなければいけません。ネットワークファイルシステム上のディレクトリは使えません。 ディレクトリを指定しなかった場合は、WinCache は Windows System Page File をすべての共有メモリセグメント用に使います。

add a note

User Contributed Notes 2 notes

up
2
ericsten at php dot net
9 years ago
[Editor's note: fixed typo]

Just a quick note about something I've discovered through debugging a recent WinCache issue:

If you change the wincache.scachesize value, you MUST shutdown all php-cgi.exe instances and manually delete the wincache_session_*.tmp file.

The wincache_session_*.tmp file will in the directory specified by session.save_path in the php.ini file.

An example session file name would look like: wincache_session_1_565779.tmp

If you don't delete this file, you will run into corruption in cross-process shared memory segments for the WinCache session handler. These will show up as 500 errors from your IIS server.

Thx!

--E.
up
0
software journalist
4 years ago
wincache.php showed in Session Cache Overview that the Available Memory was returning NAN B.

A Google search returned nothing specific to this.

Stopping the App Pool and Deleting the *session*.tmp file in the windows temp directory solved this issue. (Thanks to previous noter)
To Top