AWS EC2 上的 Apache VirtualHosts 无法正常工作

Posted

技术标签:

【中文标题】AWS EC2 上的 Apache VirtualHosts 无法正常工作【英文标题】:Apache VirtualHosts on AWS EC2 not working 【发布时间】:2017-06-13 20:20:17 【问题描述】:

我正在尝试在我的 AWS EC2 Linux 服务器上设置一个 VirtualHost。但是,它会继续将请求定向到默认页面。

我已经安装了 apache,当我在 /var/www/html/ 中创建索引文件时,它会按预期显示。

但是,当我添加 *.conf 虚拟主机时,它只会恢复默认页面。

我已经创建了我的/etc/httpd/conf.d/myvhost.conf 文件:

<VirtualHost *:80>
    DocumentRoot "/home/username/www/public"
    ServerName ec2-13-55-0-7.ap-southeast-2.compute.amazonaws.com

</VirtualHost>

文档根目录已在 /home/username/www/public 创建,我添加了一个自定义 index.html 文件,权限设置为 755。

IncludeOptional conf.d/*.conf/etc/httpd/conf/httpd.conf 中未注释

重启 apache。

但显示的是默认页面,而不是我的/home/username/www/public。 为什么?

【问题讨论】:

Stack Overflow 是一个编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参阅帮助中心的What topics can I ask about here。也许Super User 或Unix & Linux Stack Exchange 会是一个更好的提问地方。另见Where do I post questions about Dev Ops? 【参考方案1】:

首先,如果您在根文件夹中添加一些 Directory directives,那就太好了:

<Directory "/home/username/www/public/">
  allow from all
  Options +Indexes
</Directory>

或(source):

<LocationMatch "^/+$">
    Options Indexes
</LocationMatch>

其次,你可以debug what Apache understand of the configuration:

# Check for syntax error
apachectl -t
# List VirtualHost
apachectl -S

# both checks:
apachectl -t -D DUMP_VHOSTS

当然,请查看log files。

【讨论】:

以上是关于AWS EC2 上的 Apache VirtualHosts 无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

如何将 godaddy ssl 证书添加到托管在 aws ec2 上的站点

AWS EC2 PV Drivers 驱动升级

AWS - 负载均衡器上的 SSL/HTTPS

AWS Amazon Linux EC2 实例:apache 用户权限被拒绝写入目录

我们如何在aws ec2 linux实例的不同端口安装多个apache服务器

EC2 AWS 上的烧瓶