Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

В таблице представлен список конфигурационных параметров расширения WinCache:

Конфигурационные параметры WinCache
Имя По умолчанию Минимум Максимум Место изменения Список изменений
wincache.fcenabled "1" "0" "1" PHP_INI_ALL Доступно с WinCache 1.0.0
wincache.fcenabledfilter "NULL" "NULL" "NULL" PHP_INI_SYSTEM Доступно с WinCache 1.0.0
wincache.fcachesize "24" "5" "255" PHP_INI_SYSTEM Доступно с WinCache 1.0.0
wincache.fcndetect "1" "0" "1" PHP_INI_SYSTEM Доступно с WinCache 1.1.0
wincache.maxfilesize "256" "10" "2048" PHP_INI_SYSTEM Доступно с WinCache 1.0.0
wincache.ocenabled "1" "0" "1" PHP_INI_ALL Доступно с WinCache 1.0.0. Удалено в 2.0.0.0
wincache.ocenabledfilter "NULL" "NULL" "NULL" PHP_INI_SYSTEM Доступно с WinCache 1.0.0. Удалено в 2.0.0.0
wincache.ocachesize "96" "15" "255" PHP_INI_SYSTEM Доступно с WinCache 1.0.0. Удалено в 2.0.0.0
wincache.filecount "4096" "1024" "16384" PHP_INI_SYSTEM Доступно с WinCache 1.0.0
wincache.chkinterval "30" "0" "300" PHP_INI_SYSTEM Доступно с WinCache 1.0.0
wincache.ttlmax "1200" "0" "7200" PHP_INI_SYSTEM Доступно с WinCache 1.0.0
wincache.enablecli 0 0 1 PHP_INI_SYSTEM Доступно с WinCache 1.0.0
wincache.ignorelist NULL NULL NULL PHP_INI_ALL Доступно с WinCache 1.0.0
wincache.namesalt NULL NULL NULL PHP_INI_SYSTEM Доступно с WinCache 1.0.0
wincache.ucenabled 1 0 1 PHP_INI_SYSTEM Доступно с WinCache 1.1.0
wincache.ucachesize 8 5 85 PHP_INI_SYSTEM Доступно с WinCache 1.1.0
wincache.scachesize 8 5 85 PHP_INI_SYSTEM Доступно с WinCache 1.1.0
wincache.rerouteini NULL NULL NULL PHP_INI_SYSTEM Доступно с WinCache 1.2.0. Удалено в 1.3.7
wincache.reroute_enabled 1 0 1 PHP_INI_SYSTEM | PHP_INI_PERDIR Доступно с WinCache 1.3.7
wincache.srwlocks 1 0 1 PHP_INI_SYSTEM Доступно с WinCache 1.3.6.3. Удалено в 2.0.0.0
wincache.filemapdir NULL NULL NULL PHP_INI_SYSTEM Доступно с WinCache 1.3.7.4
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

wincache.fcenabled boolean
Включает/отключает файловое кеширование.
wincache.fcenabledfilter string
Определяет список идентификаторов IIS веб-серверов, разделенных запятой, для которых должен быть разрешено/запрещено файловое кеширование. Эта настройка работает в паре с wincache.fcenabled: если wincache.fcenabled установлено в 1, то для серверов, перечисленных в wincache.fcenabledfilter файловое кеширование будет отключено; если wincache.fcenabled установлено как 0, то для серверов, перечисленных в wincache.fcenabledfilter файловое кеширование будет разрешено.
wincache.fcachesize integer
Определяет максимальный размер памяти (в мегабайтах) для файлового кеша. Когда размер всех закешированных файлов превысит это значение, из кеша будут удалены самые устаревшие файлы.
wincache.fcndetect boolean
Включает/отключает функционал оповещения об изменении файла. Если функционал оповещения об изменениях файла поддерживается, то он может быть использован для обновления кеша опкодов и файлового кеша при получении соответствующих оповещений. Если подобный механизм не поддерживается, например при использовании сетевых папок, wincache будет самостоятельно проверять файлы на предмет изменения через заданные в настройке wincache.chkinterval интервалы времени.
wincache.maxfilesize integer
Определяет максимальный размер одного файла (в килобайтах) для файлового кеша. Если размер файла превышает заданное значение, то он не будет закеширован. Данная настройка применяется только к файловому кешу.
wincache.ocenabled boolean
Внимание

Эта опция была УДАЛЕНА в версии 2.0.0.0

Включает/отключает кеширование опкодов
wincache.ocenabledfilter string
Внимание

Эта опция была УДАЛЕНА в версии 2.0.0.0

Определяет список идентификаторов IIS веб-серверов, разделенных запятой, для которых должен быть разрешено/запрещено кеширование опкодов. Эта настройка работает в паре с wincache.ocenabled: если wincache.ocenabled установлено в 1, то для серверов, перечисленных в wincache.ocenabledfilter файловое кеширование будет отключено; если wincache.ocenabled установлено как 0, то для серверов, перечисленных в wincache.ocenabledfilter файловое кеширование будет разрешено.
wincache.ocachesize integer
Внимание

Эта опция была УДАЛЕНА в версии 2.0.0.0

Определяет максимальный размер памяти (в мегабайтах) для кеша опкодов. Когда размер всех закешированных опкодов превысит это значение, из кеша будут удалены самые устаревшие из них. Обратите внимание, что кеш опкодов должен быть как минимум в 3 раза больше файлового кеша. Если это не так, то размер кеша опкодов будет автоматически увеличен.
wincache.filecount integer
Определяет, сколько примерно файлов будет закешировано расширением, чтобы при старте был выделен соответствующий кусок памяти. Если количество файлов превысит заданное значение, то WinCache произведет переаллокацию памяти.
wincache.chkinterval integer
Определяет насколько часто (в секундах) расширение будет проверять файлы на предмет их изменения для обновления кешей. Значение 0 отключает данный функционал. Изменения файлов не будут отражены в кеше до тех пор, пока закешированная запись не будет удалена из кеша сборщиком устаревших записей, либо пока не будет переработан пул приложений IIS, либо не будет вызвана функция wincache_refresh_if_changed.
wincache.ttlmax integer
Определяет максимальное время (в секундах) невостребованности для записи в кеше. Установка в 0 отключает процесс удаления устаревших записей, что приведет к тому, что запись будет лежать в кеше пока сервер IIS не будет остановлен.
wincache.enablecli boolean
Определяет, разрешено ли кеширование при работе PHP из командной строки (CLI).
wincache.ignorelist string

Определяет список файлов, которые не нужно кешировать. Указываются только имена файлов. Символ разделитель - вертикальная черта "|".

Пример #1 Пример wincache.ignorelist

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

wincache.namesalt string
Определяет строку, которая будет использоваться при именовании объектов помещаемых в разделяемую память. Это необходимо для предотвращения коллизий, когда несколько процессов работают с разделяемой памятью. Длина данной строки не должна превышать 8 символов.
wincache.ucenabled boolean
Включает/отключает пользовательский кеш.
wincache.ucachesize integer
Определяет максимальный размер памяти (в мегабайтах) для пользовательского кеша. Когда размер всех закешированных переменных превысит это значение, из кеша будут удалены самые устаревшие переменные.
wincache.scachesize integer
Определяет максимальный размер памяти (в мегабайтах) для сессионного кеша. Когда размер всех закешированных данных превысит это значение, из кеша будут удалены самые устаревшие данные.
wincache.rerouteini string
Внимание

Эта опция была УДАЛЕНА в версии 1.3.7. Начиная с 1.3.7. вместо нее используйте wincache.reroute_enabled.

Задает абсолютный или относительный путь к reroute.ini, который содержит список функций PHP, чья реализация должна быть подменена реализацией из расширения WinCache. Если задан относительный путь, то он будет разрешаться относительно местоположения файла php-cgi.exe.
wincache.reroute_enabled boolean
Включает/отключает перенаправление некоторых функций файлового ввода/вывода для работу черех файловый кеш.
wincache.srwlocks boolean
Внимание

Эта опция была УДАЛЕНА в версии 2.0.0.0

Включает/отключает использование разделяемых блокировок чтения/записи. Выключение полезно при отладке ситуаций взаимных блокировок в WinCache.
wincache.filemapdir string
Задает абсолютный путь к директории, где WinCache будет держать временные файлы для сегментов разделяемой памяти. Эта директория должна располагаться на локальной машине и ни в коем случае не на сетевой файловой системе. Если директория не указана, то WinCache будет использовать Windows System Page File.

add a note add a note

User Contributed Notes 1 note

up
1
ericsten at php dot net
3 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.
To Top