Сбой синтаксиса конфигурации Apache в Elastic Beanstalk

#apache #amazon-elastic-beanstalk

#apache #amazon-elastic-beanstalk

Вопрос:

У меня возникли проблемы с развертыванием в Elastic Beanstalk (Tomcat).

Когда я развертываю свою WAR, выполняется проверка синтаксиса конфигурации Apache:

/usr/sbin/apachectl -t -f /var/elasticbeanstalk/staging/httpd/conf/httpd.conf

Но это не удается, потому что httpd.conf это не определяет необходимые модули:

 Syntax error on line 214 of /etc/httpd/conf.d/ssl.conf
Invalid command 'SetEnvIf', perhaps misspelled or defined...
  

В данном случае эти модули setenvif_module определены в /etc/httpd/conf/httpd.conf моем файле конфигурации httpd.

Я не знаю, откуда /var/elasticbeanstalk/staging/httpd/conf/httpd.conf берется.

Есть идеи, как это решить?

Комментарии:

1. Возможно, вы захотите увидеть forums.aws.amazon.com/thread.jspa?messageID=759487 . Я работаю над той же проблемой с AWS. Кажется, я обнаружил проблему с их сценариями при перестройке среды. Быстрое решение, вероятно, состоит в том, чтобы включить ваш собственный файл httpd.conf, который является их копией, но добавить в setenvif.so модуль.

Ответ №1:

Из моего исследования это, похоже, связано только с установкой / сборкой начального экземпляра с использованием Elastic Beanstalk. Файл ssl.conf, о котором идет речь, на самом деле происходит из начальной установки Apache и не является частью конфигурации Elastic Beanstalk.

Проблема возникает из-за того, что AWS больше не устанавливается mod_setenvif.so как модуль в httpd.conf, и поэтому выдается эта ошибка.

Чтобы устранить эту текущую проблему из моих сборок и из-за того, что я уже настраиваю свою конфигурацию Apache, я скопировал рабочий файл AWS httpd.conf из другого экземпляра и добавил mod_setenvif.so модуль к нему. Используя указания в http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/java-tomcat-platform.html#java-tomcat-proxy-apache , Сценарии конфигурации Elastic Beanstalk используют новый файл httpd.conf, и ошибка больше не выдается.

Я считаю это обходным решением, поскольку основные скрипты контролируются AWS. Это может быть дефектом в скрипте, а может и нет. Несмотря на это, я просто хотел быстро найти решение.

Комментарии:

1. Вы правы, я провел 5 часов с сотрудником службы поддержки AWS, и, наконец, мы решили проблему, используя мой собственный httpd.conf в .ebextensions. Он не рекомендовал использовать BeansTalk для такого рода беспорядка.

2. Итак .so (mod_setenvif.so ) /etc/httpd/modules включен, но не установлен? Это очень сбивает с толку!