本地主机上的 Apache:为虚拟主机提供特定的服务器名称

本地主机上的 Apache:为虚拟主机提供特定的服务器名称

我首先提出我的问题,下面是我迄今为止尝试解决该问题的详细信息:

在本地主机上运行的 Apache 上,我希望拥有可通过 URL 访问的不同虚拟主机: http://虚拟主机名称.机器名称/

细节:

因此,我在笔记本电脑的 8080 端口上运行 Apache。Linux Mint,因此是 Debian 发行版。出于测试目的,所有内容都在本地,因此不涉及 DNS!我使用的 IP 地址是 127.0.1.1,其中包含我计算机的域名,称为 fabjoa。在文件中/etc/apache2/apache2.conf,我输入了:

ServerName fabjoa

在文件中/etc/hosts,确实有这一行

127.0.1.1 fabjoa

在文件中/etc/apache2/ports.conf

NameVirtualHost *:8080
Listen 8080

现在,我的虚拟主机的 conf 文件。该文件名为 goyahkla,位于/etc/apache2/sites-available/,并在 中有一个符号链接/etc/apache2/sites-enabled。在此文件中,我有以下内容:

<VirtualHost *:8080>
 ServerName goyakhla.fabjoa
 ServerAdmin webmaster@localhost
 DocumentRoot /var/sites/goyahkla

....

<Directory /var/sites/goyahkla/>
  Options Indexes FollowSymLinks MultiViews
  AllowOverride All
  Order allow,deny
  allow from all
 </Directory>

...

</VirtualHost>

运行后apache2ctl configtest,我得到“语法正常”。现在,在浏览器上,打开http://fabjoa:8080/确实指向虚拟主机 goyahkla(因为这是我唯一拥有的),但http://goyahkla.fabjoa:8080找不到。其他调试:

telnet goyahkla.fabjoa:8080
telnet: could not resolve goyahkla.fabjoa:8080/telnet: Name or service not known

lynx goyahkla.fabjoa:8080
Looking up  'goyahkla.fabjoa' first
Looking up  'www.goyahkla.fabjoa.com', guessing...

Looking up goyahkla.fabjoa first
Looking up www.goyahkla.fabjoa.com, guessing...
Looking up www.goyahkla.fabjoa.com:8080
Making HTTP connection to www.goyahkla.fabjoa.com:8080
Alert!: Unable to connect to remote host.

lynx: Can't access startfile http://www.goyahkla.fabjoa.com:8080/ 

关于如何实现目的,您有什么想法吗?

答案1

我必须/etc/hosts为每个虚拟主机创建新的条目。

例如,我添加了以下行:

127.0.2.1 goyahkla

这让我可以通过

http://goyahkla/

答案2

您要找的是127.0.1.1 *.fabjoahosts 文件中的样式语法。遗憾的是,hosts 文件不支持此功能。您必须使用 DNS 来实现这一点,或者像上面提到的那样分别输入每个样式。

相关内容