问题描述
我无法在/etc/httpd/conf.d/elasticbeanstalk中写入带有.ebextensions的文件。我需要编写一个vhost.conf来添加子域。我在尝试许多方法: 用“ files:...”写入文件
files:
"/etc/httpd/conf.d/elasticbeanstalk":
mode: "000777"
owner: root
group: root
encoding: plain
content: |
NameVirtualHost *:80
<VirtualHost *:80>
ServerName api.domain.com
DocumentRoot "/var/app/current/api/"
<Directory "/var/app/current/api">
AllowOverride All
Require all Granted
</Directory>
</VirtualHost>
然后我尝试将此文件写入临时目录,并使用命令将其复制到/etc/httpd/conf.d/elasticbeanstalk
files:
"/home/ec2-user/vhost.conf":
mode: "000777"
owner: root
group: root
encoding: plain
content: |
NameVirtualHost *:80
<VirtualHost *:80>
ServerName api.domain.com
DocumentRoot "/var/app/current/api/"
<Directory "/var/app/current/api">
AllowOverride All
Require all Granted
</Directory>
</VirtualHost>
container_commands:
00_chmod:
command: "sudo chmod 777 /etc/httpd/conf.d/elasticbeanstalk"
01_rewrite:
command: "sudo mv -f /home/ec2-user/vhost.conf /etc/httpd/conf.d/elasticbeanstalk/vhost.conf"
02_apache:
command: "sudo apachectl restart"
也不起作用。所以我用SSH检查了ec2实例上的一些信息。该文件是在/ home / ec2-user中创建的,而不是在apache文件夹中创建的。我究竟做错了什么 ?没有chmod目录(SSH),我无法在/etc/httpd/conf.d/elasticbeanstalk中创建文件。
我使用的是运行在64位Amazon Linux 2 / 3.1.1上的PHP 7.4(代理apache不是Nginx),我在其他应用程序的其他实例上具有完全相同的目录.ebextension和相同的文件,但是在运行的PHP 7.2上64位Amazon Linux / 2.9.10,它正在这一版本上工作!那两个env之间有什么区别?
编辑:日志中没有错误,所有命令均已执行!
谢谢您的帮助!
解决方法
好的,我找到了解决方案!在平台3.X上,我们必须将此配置放入.platform文件夹中,而不再放在.ebextensions文件夹中。这可以帮助您:https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.migration-al.html