БТР.фильтры по пути?
Как я буду использовать apc.параметр filters в APC opcode caching не кэширует определенные пути? Например, я хочу, чтобы кэширование было активным для чего-либо под путем:
"/var / www / vhosts"
и исключить пути, как
" / usr / share/psa-Орда/"
Я попытался с помощью
apc.cache_by_default = 0
apc.filters = "+/var/www/vhosts"
и
apc.cache_by_default = 1
apc.filters = "-/usr/share/psa-horde/"
но ни один не работал, как я ожидаемый.
http://www.php.net/manual/en/apc.configuration.php#ini.apc.filters
должен ли фильтр быть чем-то вроде "+/var/www/vhosts/*" (обратите внимание на подстановочный знак)? Боюсь, это невозможно из-за того, как работают фильтры:
обратите внимание, что имя файла, используемое для сопоставление передается в включить / потребовать, а не абсолютный путь.
любые идеи или примеры конфигураций?
5 ответов
фильтр должен быть разделенным запятыми списком расширенных регулярных выражений POSIX. Я считаю, что то, что у вас есть во второй попытке, соответствует только точному пути /usr/share/psa-horde/, а не /usr/share/psa-horde/something или /usr/share/PSA-horde/anotherfile.в PHP
следующее должно соответствовать чему-либо в подпапке
apc.filters = "-/usr/share/psa-horde/.*"
очень поздний ответ, но на всякий случай у кого-то еще есть эта проблема (я собираюсь догадаться, что вы, возможно,/запускали Plesk box, поэтому я наткнулся на это).
лучше всего иметь APC в списке загруженных модулей php, но иметь
apc.enabled 0
в главном php.ini. Затем для каждого vhost, для которого вы хотите включить его, добавьте php_admin_value apc.enabled 1
включить для каждого. Может быть проблемой, если у вас есть тонна сайтов, но работает всего несколько.
решение pnomolos работает, если у вас разные vhosts, но оно не будет работать, если у вас есть только один и вы хотите контролировать кэширование на основе действительно для каждого каталога.
этот отчет об ошибке указывает на лучшее решение:https://bugs.php.net/bug.php?id=57064
включить APC и установить apc.cache_by_default
до 0
на php.ini
. В конфигурации Apache вы можете использовать php_admin_setting apc.cache_by_default 1
внутри Directory
блок, чтобы включить кэширование APC именно там, где вам это нужно.
начиная с apc.фильтры работают с регулярными выражениями, подстановочный путь должен быть указан как БТР.filters = " - / usr / share/psa-Орда/.*"