PHP кэш кода операции, который может обнаружить идентичные файлы

В настоящее время я использую APC с PHP FPM для кэширования нескольких сотен сайтов Wordpress. С 2-гигабайтным кешем все работает хорошо, но это не очень эффективно, и кеш всегда исчерпан.

Если у меня есть 200 сайтов Wordpress на одном сервере с одинаковыми версиями, он, например, будет кэшировать 200 идентичных файлов wp-db.php.

Кажется, я помню дискуссию несколько лет назад о том, как это может быть угрозой безопасности. Я сомневаюсь, что это проблема больше (особенно с PHP FPM), но я все равно контролирую все сайты, так что преимущества лучше, чем любые недостатки.

Изменилось ли это вообще за последние годы? Особенно с новым стандартным Zend Opcache? Такие хакерские ссылки не идеальны, например, вы не можете обновить 500 сайтов одновременно, поэтому время от времени они будут ужасно ломаться.

1 ответ

Это частичный ответ, так как я не испытывал этого с кодом операции Zend.

В прошлый раз, когда я использовал apc, эта функция показалась мне ошибкой, никогда не воспринимала ее как функцию:-). Если вы используете chroot-ed-пулы с php-fpm, и если все пулы имеют одинаковые относительные пути в chroot, то они используют один и тот же ключ кэша в apc. Поскольку ключом является полный абсолютный путь к файлу, а в chroot этот путь к файлу не может содержать часть до chroot.

Таким образом, вы можете попробовать это с chroot. Но это подразумевает несколько уловок:

  • chroot должен содержать все элементы, которые могут понадобиться php (временные каталоги, /etc/hosts, некоторые устройства)
  • php mail не будет работать и должен использоваться в режиме smtp
  • некоторые файлы должны быть исключены из кеша, все файлы, содержащие настройки, если вы забудете, что сайты будут перепутаны!
  • возможно некоторые другие, chroot никогда не бывает простым
Другие вопросы по тегам