[英]Second Virtual Host's DocumentRoot is changed after launching ec2 based on customized Amazon Linux AMI
我已經搜尋了兩天,但找不到這種行為的解釋。
我已關注AWS文檔。 我使用推薦的Amazon Linux AMI(aki-c48f51d9)啟動了ec2實例。 然后根據我的需要定制我的ec2實例,包括Apache的配置:/etc/httpd/conf/httpd.conf我的定制創建了兩個虛擬主機,如下所示:
<VirtualHost *:80>
ServerName www.domain1.com
ServerAlias domain1.com
ServerAdmin support@domain1.com
DocumentRoot "/var/www/html/folder1"
</VirtualHost>
<VirtualHost *:80>
ServerName subdomain.domain1.com
ServerAdmin support@domain1.com
DocumentRoot "/var/www/html/folder2"
</VirtualHost>
經過測試並按預期工作,將subdomain.domain1.com的請求路由到/ var / www / html / folder2。
因此,我從此ec2實例開始創建自定義AMI。 成功創建AMI之后,我使用此AMI啟動了一個新的ec2實例。 現在,令我驚訝的是,在這個新的ec2實例上,我的第二個虛擬主機的配置已稍微更改為:
<VirtualHost *:80>
ServerName subdomain.domain1.com
ServerAdmin support@domain1.com
DocumentRoot "/var/www/html/folder1"
</VirtualHost>
請注意,DocumentRoot以某種方式從原始的“ folder2”更改為“ folder1”,與默認虛擬主機(第一個)相同。 發生了什么? 我將不勝感激能為我指出解決此問題的任何幫助。 提前致謝!
當我的虛擬主機條目位於主/etc/httpd/conf/httpd.conf文件中時,我遇到了完全相同的問題。 第二個DocumentRoot被覆蓋為與第一個相同。
為了解決此問題,我刪除了虛擬主機代碼(盡管我將NameVirtualHost保持活動狀態)
<VirtualHost *:80>
ServerName www.domain1.com
ServerAlias domain1.com
ServerAdmin support@domain1.com
DocumentRoot "/var/www/html/folder1"
</VirtualHost>
<VirtualHost *:80>
ServerName subdomain.domain1.com
ServerAdmin support@domain1.com
DocumentRoot "/var/www/html/folder2"
</VirtualHost>
並將其添加到位於/etc/httpd/conf.d/httpd-vhosts.conf的新文件中(請注意,該文件位於conf.d文件夾而不是conf文件夾中)。
如果您的httpd.conf文件中的默認文件仍自動添加conf.d文件夾中的所有文件:
# Supplemental configuration
#
# Load config files in the "/etc/httpd/conf.d" directory, if any.
IncludeOptional conf.d/*.conf
新的httpd-vhosts.conf文件也將如此。
我在Elastic Beanstalk環境中使用我的EC2實例,因此在創建AMI並將實例配置更改為使用該自定義AMI ID之后,基於該AMI的EC2實例仍具有正確的文檔根目錄。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.