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

PHP FPM, chroot не может подключиться к AWS RDS

Я экспериментировал с chroot'ом пулов php-fpm с помощью встроенного метода chroot в конфигурации пула php. Это сделано с целью размещения нескольких веб-сайтов WordPress на одном экземпляре AWS EC2. На данный момент это базовый стек LEMP, использующий экземпляр AWS RDS для уровня mysql и пока только один пул для одного виртуального хоста nginx.

Все работает отлично, за исключением того, что соединение Wordpress с БД пытается подключиться к внешнему имени хоста RDS. Когда я говорю Wordpress использовать имя хоста, я получаю ошибку, не обнаруженную хостом mysql в моих журналах php. Когда я проверяю IP-адрес экземпляра RDS (ping также работает изнутри chroot) и сообщаю Wordpress использовать вместо этого IP-адрес, все подключается должным образом (группы безопасности AWS настроены правильно).

Ради экспериментов у меня есть mount --bind ко всем системным каталогам, смонтированным внутри каталога, к которому пул fpm привязан (/ etc, / lib и т.д.), поэтому я знаю, что все библиотеки lib и DNS-преобразователи доступны для chroot:

$ mount --bind /etc /path/to/chroot/etc
$ mount --bind /lib /path/to/chroot/lib
...

Однако что-то происходит с клиентом php mysql, который не может разрешить имя хоста при просмотре сайта в общедоступной сети. Я пробовал запустить сайт без chroot'а, и соединение с именем хоста RDS работает как надо. Сайт просто не может подключиться к RDS через имя хоста при chroot'е.

Я исследовал проблемы DNS, связанные с chroot'ом, и просто не могу найти ничего специфического для этой ситуации. Если есть какие-то идеи, мы будем очень признательны.