【发布时间】:2021-01-20 14:42:27
【问题描述】:
在部署 Elastic Beanstalk 应用程序期间,尝试从 Elastic Beanstalk 将 .conf 文件添加到 E2 实例上的 /etc/httpd/conf.d/ 目录。我在 .ebextensions 目录中添加了一个 .config 文件,其定义如下:
files:
"/etc/php.d/project.ini" :
mode: "000644"
owner: root
group: root
content: |
max_input_vars = 10000
upload_max_filesize = 256M
post_max_size = 256M
container_commands:
01_enable_mod_deflate:
command: "cp .ebextensions/enable_mod_deflate.conf /etc/httpd/conf.d/enable_mod_deflate.conf"
02_enable_mod_expires:
command: "cp .ebextensions/enable_mod_expires.conf /etc/httpd/conf.d/enable_mod_expires.conf"
03_secure_wordpress:
command: "cp .ebextensions/secure_wordpress.conf /etc/httpd/conf.d/secure_wordpress.conf"
04_restart_apache:
command: "sudo apachectl restart"
.conf 文件都在 .ebextensions 文件夹中,但它们没有被复制过来,这导致 wordpress 站点根目录中的 .htaccess 出现问题。正在生成的错误如下所示:
命令 01_enable_mod_deflate (cp /var/app/current/.ebextensions/enable_mod_deflate.conf /etc/httpd/conf.d/enable_mod_deflate.conf) 失败 2020-10-05 13:45:59,944 [错误] 在构建 postbuild_0_Benefits_Bridge_2 期间遇到错误:命令 01_enable_mod_deflate 失败 回溯(最近一次通话最后): 文件“/usr/lib/python2.7/site-packages/cfnbootstrap/construction.py”,第 542 行,在 run_config CloudFormationCarpenter(配置,self._auth_config).build(工作日志) 文件“/usr/lib/python2.7/site-packages/cfnbootstrap/construction.py”,第 260 行,在构建中 更改['commands'] = CommandTool().apply(self._config.commands) 文件“/usr/lib/python2.7/site-packages/cfnbootstrap/command_tool.py”,第 117 行,在应用中 raise ToolError(u"Command %s failed" % name) ToolError:命令 01_enable_mod_deflate 失败
不确定其中的任何含义,但它会为每个文件生成相同的错误。这里有什么问题?我刚刚启动了一个新的 Elastic Beanstalk 实例,默认情况下不应该这样做吗?实例有问题吗?由于根目录中的 .htaccess 文件,该站点生成 500 错误,但如果我将其删除,则只有主页加载,所有其他页面都会出现 404 错误。我需要将这些 .conf 文件添加到所有实例的 /etc/httpd/conf.d/ 目录中,但由于上述错误,它们根本没有添加到任何实例中,我不知道如何修复,或者如果这是使用 Elastic Beanstalk 创建的默认实例的问题?
如何解决这个问题?我已经重新启动了环境,但这并没有帮助。我对重建环境有点犹豫,因为这会清除连接到应用程序的数据库,并且不确定这是否会有所帮助。
【问题讨论】:
-
您可以通过 ssh 进入实例并从内部进行检查吗?目的地位置是否正确?如果您手动复制文件,一切都按预期工作吗?
-
是的,我可以通过 ssh 进入实例,并且复制文件在实例中按预期工作。
-
/etc/httpd/conf.d/ 的目录在那里,但 .ebextensions 目录甚至根本不在实例上。不应该也将其复制到 /var/app/current 目录中吗?还是仅在部署期间使用?
-
好的,更多信息。 project.ini 文件正在正确写入以下信息。当我通过 ssh 登录时,我必须执行 sudo cp 才能使其正常工作,所以我也要尝试将其更改为 .config 文件中的内容,并希望这样做。
-
用
sudo尝试过,但仍然没有运气。它只是不会复制文件,甚至不会在任何地方将文件添加到实例中。
标签: amazon-web-services apache amazon-elastic-beanstalk ebextensions