Я запускаю сервер Apache AWS ElasicBeanstalk. Есть поддомен с другим DocumentRoot (см. ниже). Когда я использую eb deploy, а затем подключаюсь к машине по ssh, чтобы вручную изменить файл /etc/http/conf/httpd.conf, все работает нормально.
Однако, если я сделаю eb deployопять таки, DocumentRoot в файле http.conf изменится с "/var/www/html/sub/" на "/var/www/html/", остальная часть файла останется неизменной.
Я предполагаю, что eb deploy должен каким-то образом переписать файл httpd.conf, но я озадачен тем, почему изменяется только корень документа.
<VirtualHost *:80>
ServerName example.com
DocumentRoot "/var/www/html/"
</VirtualHost>
<VirtualHost *:80>
ServerName sub.example.com
DocumentRoot "/var/www/html/sub/"
</VirtualHost>
Кто-нибудь знает, как я могу заставить работать свои субдомены?

Благодаря функциональности Elastic Beanstalk любые изменения, которые мы вносим в экземпляр(ы) вручную, временно отразятся только на этом экземпляре. Изменения исчезнут, если вы перезагрузите/пересоберете экземпляр.
Если вы хотите, чтобы изменения применялись постоянно ко всем экземплярам, вам необходимо использовать папку .ebextensions с соответствующими файлами .config в папке. Вы можете указать изменения конфигурации серверного программного обеспечения (apache, php и т. д.), используя функцию .ebextensions.
Папка .ebextensions всегда будет частью вашего .zip-файла с кодом.
Вы можете перейти по следующей ссылке, чтобы получить дополнительную помощь по .ebextensions: https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/ebextensions.html
Необязательно заканчивать свои посты подписью — в каждом из ваших постов есть ссылка на ваше имя пользователя, поэтому кто-то может найти ваш сайт, нажав на нее. Обратите внимание, что окончание всех ваших сообщений одной и той же ссылкой может рассматриваться как спам.