Назад | Перейти на главную страницу

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

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

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

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

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

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

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

Так что вы можете попробовать это с помощью chroot. Но здесь есть несколько хитростей:

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