У меня есть веб-приложение Catalyst на экземпляре Amazon EC2 Linux, и его содержимое обслуживается Apache/FastCGI. Всякий раз, когда я запускаю новый экземпляр, мне нужно получить внутренний IP-адрес сервера базы данных и назначить его переменной среды, выполнив эту команду при запуске:
export MYSQL_HOST=$(dig +short ec2-*-*-*-*.compute-1.amazonaws.com);
У меня есть модуль perl, который должен создать соединение с базой данных после поиска значения переменной среды $MYSQL_HOST.
Моя проблема довольно хорошо задокументирована в том, что FastCGI не может напрямую обращаться к этим переменным среды оболочки.
Я вижу, что вы можете использовать PassEnv из Apache mod_env для доступа к переменным среды и что вы можете назначать значения переменным среды FastCGI с помощью директивы Apache, FcgidInitialEnv (если я жестко запрограммирую значение здесь, я могу получить его с помощью моего модуля Perl) .
Мои навыки настройки Apache довольно просты, поэтому мне было интересно, может ли кто-нибудь порекомендовать способ связать их вместе, чтобы мой модуль perl мог получить доступ к $MYSQL_HOST.
Спасибо!