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

Ограничить кеширование кода операции APC определенными сайтами? Nginx + PHP-FPM + APC

Есть ли способ включить / отключить APC для каждого виртуального хоста? Я бы предпочел не использовать драгоценную разделяемую память apc для кэширования моего поддомена PHPmyAdmin или менее используемых сайтов. Настройка - это Nginx, php-fpm и apc.

Из того, что я прочитал, настройка фильтра APC не может соответствовать полному пути, поэтому я ищу другой метод.

Вам нужно будет создать два отдельных пула php "worker" в вашем php-fpm.conf, каждый использует разные php_defines а также другой порт. У одного был бы включен APC, у другого - нет. Как включить или отключить APC, будет зависеть от того, встроили вы его в исполняемый файл PHP или нет. Если он встроен, вы бы добавили apc.enabled=0 в одном php_defines, чтобы отключить его в этом рабочем пуле. В противном случае вы бы удалили extension=apc.so из вашего файла .ini по умолчанию и переместите его в один из php_defines, чтобы включить его в этот рабочий пул.

В nginix у вас должна быть возможность указать, какой рабочий пул будет использоваться на каждом конкретном компьютере.location основе, поместив правильный порт в fastcgi_pass. Вы можете проверить, работает он или нет, создав небольшой скрипт, вызывающий phpinfo () в каждом месте и проверяющий вывод для APC.