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 никогда не бывает простым