Elastic Beanstalk中的Apache配置语法失败

时间:2016-10-08 10:18:57

标签: apache 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 个答案:

答案 0 :(得分:2)

从我的调查来看,这似乎只与使用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控制。我是脚本中的缺陷,也可能不是。无论如何,我只想快速找到解决方案。