
В настоящее время я использую 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 никогда не бывает простым