如何使用<;虚拟主机>;在httpd.conf Amazon linux EC2中
我已经尝试了所有可能的解决方案,将mydomain.com指向如何使用<;虚拟主机>;在httpd.conf Amazon linux EC2中,linux,amazon-web-services,apache2,httpd.conf,Linux,Amazon Web Services,Apache2,Httpd.conf,我已经尝试了所有可能的解决方案,将mydomain.com指向/var/www/html/mysite下的特定文件夹。首先,在/etc/httpd下缺少httpd.conf文件,但在/etc/httpd/conf下可以找到它。也没有/etc/apache2文件夹 为了将我的域指向/var/www/html/mysite,我在/etc/httpd/conf/httpd.conf下写了下面的代码,就在写着ServerAdmin的行下面root@localhost <VirtualHost *:
/var/www/html/mysite
下的特定文件夹。首先,在/etc/httpd
下缺少httpd.conf
文件,但在/etc/httpd/conf
下可以找到它。也没有/etc/apache2
文件夹
为了将我的域指向/var/www/html/mysite
,我在/etc/httpd/conf/httpd.conf
下写了下面的代码,就在写着ServerAdmin的行下面root@localhost
<VirtualHost *:80>
ServerAdmin webmaster@mysite.com
ServerName mydomain.com
ServerAlias mydomain.com
DocumentRoot /var/www/html/mysite/
</VirtualHost>
服务器管理员webmaster@mysite.com
ServerName mydomain.com
ServerAlias mydomain.com
DocumentRoot/var/www/html/mysite/
它确实起了作用,但一切都没有问题,甚至IP也指向/var/www/html/mysite/
。
我不知道我错在哪里。我只需要mydomain.com指向mysite目录。:
如果在包含最特定匹配IP地址和端口组合的虚拟主机集中找不到匹配的ServerName或ServerAlias,则列出的第一个匹配将使用的虚拟主机
您的*:80
虚拟主机接受端口80上的所有IP,因此它适合“第一个列出的匹配虚拟主机”,这就是它得到服务的原因
因此,如果您不喜欢将mydomain.com
作为默认虚拟主机,请在其上方创建一个仅指向默认位置的虚拟主机(没有ServerName
)
(顺便说一句,您使用的是
/etc/httpd
而不是/etc/apache2
,因为不同的发行版做的事情不同。通常,httpd
在基于CentOS的服务器上,apache2
在Debian系列上。配置布局也相当不同。这是正常的,无需担心。)我假设您已经根据您的安装实际设置了ServerName
和ServerAlias
?Ie与他们正在服务的真实域
我认为您可能需要删除/var/www/html/mysite/
此外,您可能希望在此阅读:-它解释了文档如何映射到documentRoot目录下确保运行Apache的用户有权读取这些文件(如果您可以在AWS中使用chmod,则不确定)。同时从DocumentRoot中删除任何后面的斜杠
提供ErrorLog路径(例如,
ErrorLog/var/log/vhosts/error.log
)以进行深入调试。当您浏览域mydomain.com时,您会遇到什么错误
请确保在该EC2为传入流量打开端口80,否则默认情况下将拒绝所有流量。您可以检查以下几项:
- Please confirm you have pointed correct ip in A record under DNS management on domain registrar.
- Are you trying to access site on www version or non-www version. If you are trying to access on www, probably it may not work as I cannot see any ServerAlias in your vhost block.Make sure to restart your apache after making change in vhost for ServerAlias.
- Remove forward slash at end of DocumentRoot line - it should read as /var/www/html/mysite
- If possible place and entry for 127.0.0.1 mydomain.com in your /etc/hosts file.
我确实尝试从DocumentRoot中删除尾部斜杠,并删除了ServerName,但没有成功。我没有在
DocumentRoot
中提到尾部斜杠(尽管这是一个很好的建议);你为什么对我评论这件事?如果它适用于所有带有尾随斜杠的主机,但您只希望一个主机名起作用,那么斜杠没有任何区别。你试过我写的其他东西了吗?Stack Overflow是一个关于编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参见帮助中心中的。也许或者会是一个更好的问题。问题是关于虚拟主机,而不是关于在EC2或安全组中打开端口