2010-02-23 97 views
3

我有这个网络服务器有一个IP地址xxx.xxx.xx.x,我也有一个网站我想发布,但我没有任何域名为我的网站呢。基于IP的VirtualHost和Apache

所以在我httpd-vhosts.conf文件我有这样的设置:

<VirtualHost xxx.xxx.xx.x> 
    ServerName xxx.xxx.xx.x 
    DocumentRoot "C:\Sites\mysite" 
</VirtualHost> 

而且因为我没有一个领域我真的想使用的IP地址来达到我的网站,但我已经尝试这样做,它不工作。我想你应该在ServerName中设置一个服务器名称,如标题所示。

有没有什么办法让我的网站通过我的IP地址公开,如果是的话我该怎么做?

回答

4

尝试

NameVirtualHost *:80 

<VirtualHost *:80> 
    DocumentRoot C:\Sites\mysite 
    ServerName xx.xx.xx.xx 
</VirtualHost> 

记住重新启动Apache,

您可能还需要添加,

Listen xx.xx.xx.xx:80 
+0

谢谢,它的工作原理。 – Martin 2010-02-24 17:58:10

-1

这不是一个编程问题。

但无论如何,

设置虚拟主机为*而不是一个特定的IP地址。我不认为你需要服务器名称。

+0

Thx为您的答复,我知道这不是一个编程问题,但我认为这是提出这种问题的正确论坛。我想你的解决方案: 的 的DocumentRoot“C:\网站\ mysite的” 但我仍没有得到我的网站,如果我输入服务器的IP,我已经重新启动Apache和检查我的服务器是否响应ping。 – Martin 2010-02-23 14:18:06

+0

@Martin - serverfault.com是这类问题的正确论坛。 – 2010-02-23 14:47:19

+0

Thx Andy,现在我知道以后:D – Martin 2010-02-23 14:56:37

0

如果你只有这台服务器上的一个网站,你不需要一个虚拟主机。只需正确设置DocumentRoot即可。 (听0.0.0.0:80)还要确保Apache是​​侦听所有IP地址

如果不适合你,从你的命令提示符下执行:

telnet xx.xx.xx.xx 80 
GET/

,看看你会得到什么回来 - 你应该得到你的网站的默认页面。

+0

感谢您的建议,但我确实运行了多个站点,并且它们的工作非常完美,因为它们具有在“httpd-vhosts.conf”文件中缓存的域。但是这个不起作用,因为我没有域名,只有一个IP地址。 – Martin 2010-02-23 14:55:49

+0

这可能是因为您不能混用基于名称的虚拟主机和IP虚拟主机,除非您拥有基于名称的主机共享的IP,并且为您的基于IP的主机提供了另一个单独的IP。您是否可以在现有的域名上敲出临时的DNS名称 - 例如test.yoursite.com? – 2010-02-23 15:15:04