AWS Lightsail中Bitnami LAMP虚拟主机配置失败:域名未指向指定目录
修复Bitnami LAMP虚拟主机HTTPS访问默认页面问题
你的核心问题是仅配置了HTTP(80端口)的虚拟主机,而HTTPS(443端口)的虚拟主机未对应配置——bncert-tool启用HTTPS后会自动生成443端口的默认配置,该配置仍指向根目录/opt/bitnami/apache/htdocs,所以访问HTTPS时会走默认配置而非你的自定义规则。另外注意你配置文件里的ServerName拼写错误(domaine1.fr应为domain1.fr),这也会导致虚拟主机匹配失败。
按以下步骤修复:
1. 修正自定义虚拟主机配置,添加HTTPS(443端口)规则
编辑你的自定义配置文件/opt/bitnami/conf/vhost/myapp-vhosts.conf,替换为以下内容(注意修正域名拼写,并添加443端口的SSL配置):
# HTTP 80端口配置 <VirtualHost *:80> ServerName domain1.fr DocumentRoot "/opt/bitnami/apache/htdocs/domain1" <Directory "/opt/bitnami/apache/htdocs/domain1"> AllowOverride All Require all granted </Directory> # 强制跳转HTTPS(可选,根据需求保留) RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R,L] </VirtualHost> <VirtualHost *:80> ServerName domain2.fr DocumentRoot "/opt/bitnami/apache/htdocs/domain2" <Directory "/opt/bitnami/apache/htdocs/domain2"> AllowOverride All Require all granted </Directory> # 强制跳转HTTPS(可选) RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R,L] </VirtualHost> # HTTPS 443端口配置(参考bncert生成的SSL证书路径) <VirtualHost *:443> ServerName domain1.fr DocumentRoot "/opt/bitnami/apache/htdocs/domain1" <Directory "/opt/bitnami/apache/htdocs/domain1"> AllowOverride All Require all granted </Directory> # SSL证书路径(bncert-tool生成的路径通常如下,若不同可查看httpd-ssl.conf确认) SSLEngine on SSLCertificateFile "/opt/bitnami/apache/conf/domain1.fr.crt" SSLCertificateKeyFile "/opt/bitnami/apache/conf/domain1.fr.key" SSLCertificateChainFile "/opt/bitnami/apache/conf/domain1.fr.ca-bundle" </VirtualHost> <VirtualHost *:443> ServerName domain2.fr DocumentRoot "/opt/bitnami/apache/htdocs/domain2" <Directory "/opt/bitnami/apache/htdocs/domain2"> AllowOverride All Require all granted </Directory> SSLEngine on SSLCertificateFile "/opt/bitnami/apache/conf/domain2.fr.crt" SSLCertificateKeyFile "/opt/bitnami/apache/conf/domain2.fr.key" SSLCertificateChainFile "/opt/bitnami/apache/conf/domain2.fr.ca-bundle" </VirtualHost>
2. 调整配置文件加载顺序(关键)
bncert-tool生成的HTTPS配置通常会被优先加载,确保你的自定义配置在默认HTTPS配置之后加载:
- 打开
/opt/bitnami/apache/conf/httpd.conf,找到bncert添加的Include语句(类似Include "/opt/bitnami/apache/conf/vhosts/*.conf"或具体的HTTPS配置文件) - 将你的自定义配置Include语句移到这些默认HTTPS配置的后面,确保自定义规则覆盖默认:
# 先加载默认vhost配置(包括bncert生成的HTTPS规则) Include "/opt/bitnami/apache/conf/vhosts/*.conf" # 再加载你的自定义配置 Include "/opt/bitnami/apache/conf/vhost/myapp-vhosts.conf"
3. 验证Apache配置语法
执行命令检查配置是否有语法错误:
sudo /opt/bitnami/apache/bin/httpd -t
如果输出Syntax OK则继续,否则根据提示修正错误。
4. 重启Apache服务
sudo /opt/bitnami/ctlscript.sh restart apache
完成以上步骤后,访问https://domain1.fr和https://domain2.fr应该会分别指向对应的目录。
内容的提问来源于stack exchange,提问作者Victor Berson
相关产品推荐
相关产品推荐

