2013-04-23 128 views
0

我在我的WIN7笔记本电脑上运行XAMPP开发网站。现在我使用虚拟主机和修改后的主机文件,因此我可以通过此URL访问我的网站“www.thisshouldbemysite.nl”。但它会从我的XAMPP服务器加载。虚拟主机上的xampp和外部设备访问

对我来说,这是工作正常。我可以做我想做的事。但我也想从外部设备访问此服务器,例如智能手机或平板电脑,以便我可以看到该网站在其他设备上的呈现方式。但在平板电脑浏览器中输入我的XAMPP PC的IP地址会使我进入C:\xampp\htdocs目录,我无法访问C:\xampp\htdocs\thisshouldbemysite.nl目录。

有没有人有我如何配置我的服务器以同时工作(本地和远程)的想法。远程应该在同一个本地网络!

在这里你可以找到我目前的设置。

主机:

127.0.0.1 www.thisshouldbemysite.nl 

的httpd-vhosts.conf:

<VirtualHost *:80> 
    DocumentRoot C:\xampp\htdocs 
    ServerName localhost 
</VirtualHost> 

<VirtualHost *:80> 
    DocumentRoot C:\xampp\htdocs\thisshouldbemysite.nl 
    ServerName www.thisshouldbemysite.nl 
</VirtualHost> 
+0

您是否找到解决方案?我需要同样的东西。 – Skuta 2013-10-31 15:47:13

+0

是的,我找到了解决方案,Tuan的答案是正确的为我工作。 – Timo002 2013-10-31 15:55:30

回答

1

您是否尝试为您的虚拟主机这个配置?

<VirtualHost *:80> 
    DocumentRoot C:\xampp\htdocs\thisshouldbemysite.nl 
    ServerName localhost 
</VirtualHost> 
+0

我想尝试一下,但是当我更改了我的httpd-vhosts.conf文件时,我的apache服务器不想再启动了。撤消doensn't没有帮助,所以我furst需要解决这个问题。您的建议可能有效,但我有多个站点作为虚拟主机。所以如果这个工作,它将只适用于特定的网站。 – Timo002 2013-04-23 06:42:30

+0

奥克,你的解决方案的作品。但是,我需要访问本地IP地址,任何重定向到www.thisshouldbemysite.nl不起作用。但基本上我可以从这开始。正如我所提到的,我的httpd-vhosts.conf文件包含更多的虚拟主机! – Timo002 2013-04-23 07:51:38

4

我要盖几件事情给你完整的图片,也许你更好的了解过程,那么你可以验证你的问题,并因此找到答案的每个部分。

我们需要了解的第一件事是您的浏览器在输入域名时知道该往哪里去。您的浏览器将检查您的本地主机文件,然后您的本地DNS缓存,然后向DNS服务器发出请求。 DNS服务器可以由您的ISP/DHCP自动设置,也可以在互联网连接设置中手动设置。因此,向域名提出请求后,您的浏览器/操作系统会按顺序检查这些地址是否符合条目。如果找不到条目,​​则域名将不会解析。

DNS服务器可以有不同种类的条目。它可以告诉你域名托管的位置,它可以告诉你一个子域名在哪里,它可以指向一个域名到另一个DNS服务器......它是一个灵活的多用途地点,域名可以指向任何地方。另外,根据为域名设置的DNS条目类型,浏览器会自动知道是否需要向另一台DNS服务器询问域名指向的位置,或者是否它需要查找最终结果。 DNS服务器设置不当可能导致用户陷入DNS环路 - 一个DNS指向另一个DNS,第二个DNS指向第一个DNS。这些东西很容易弄清楚。

主机文件基本上就像本地手动设置的类似DNS的系统。它允许你说“any.domain”在“any-ip-address”。通过这种方式,您可以在本地重写或忽略其他DNS资源。这对本地人很有用,但如果你想要通过互联网或许多设备访问内容,我强烈建议使用DDNS服务,我将在下面进行介绍。

--- Apache的虚拟主机文件---

在虚拟主机文件我设置默认的虚拟主机。这样,如果我键入我的IP或没有明确定义的虚拟主机的域名,我仍然可以从我的网络服务器获得某种响应。这只是我的偏好,但完全没有必要。设置默认值后,我明确定义了要提供的域/子域。

了NameVirtualHost *:80

##############本地主机

的ServerAdmin网站管理员@本地 的DocumentRoot “d:/ XAMPP/htdocs中” 服务器名本地主机

<Directory "D:/xampp/htdocs"> 
    AllowOverride All 
    Order Allow,Deny 
    Allow from all 
    Require all granted 
</Directory> 

######## othersite.local.whatever

丝氨酸verAdmin站长@本地 的DocumentRoot “d:/xampp/othersite.local.whatever” 服务器名othersite.local.whatever 的AllowOverride所有 订购允许,拒绝 允许所有 要求所有授予

后您的VHost文件被保存,重启apache。如果apache启动,然后自动停止运行,那么你的apache config/Vhosts文件可能有错误,请仔细检查你的工作,在保存你所做的每个更改之后尝试启动apache,直到它工作。

--- Windows主机文件---

除非你有一个DNS服务器设置,你将要修改Windows HOSTS文件为了要告诉你的机器othersite.local.whatever点到Apache服务器。这个文件做的是在本地将一个域名指向一个IP地址。它不会影响其他计算机,只有这台机器也在运行您的服务器。

的hosts文件位于C:/窗/ SYSTEM32 /司机/ etc/hosts中

根据您的Windows许可,您可能需要复制hosts文件到桌面首先,用记事本或打开它您的fav文本编辑器,进行修改,保存并将其复制回原始位置。在新行,添加新条目:

127.0.0.1 othersite.local.whatever

后您保存您的主机文件回C:/窗/ SYSTEM32 /驱动器的/ etc /你现在应该能够访问othersite.local.whatever在服务器机器上没有问题。如果您有其他本地Windows计算机,则可以修改其主机文件以指向服务器的IP地址(通常类似于192.168.1.xx),以便这些计算机也可以通过others.local.whatever访问虚拟主机。

192.168.1。?? othersite.local.whatever

---通过替代方法解决你的问题---

根据您的需求是什么,你可以做两件事情。

1)修改所有windows电脑上的vhost文件,做一些关于如何在其他设备上做的研究。如果所有设备都认为othersite.local.whatever指向您的服务器,则您的服务器应该使用正确的虚拟主机页面进行响应。这就是它如何在本地网络或广域网/互联网上工作的天气。

2)设置本地DNS服务器,将所有设备指向您的DNS,并在您的DNS中添加一个条目以指向该域到您的服务器。如果您以前从未做过这件事,这是一项复杂的任务,但您可能会发现它很有用。

3)建立动态DNS(DDNS)。这个有点复杂,但实际上很容易。它确实可以帮助你打开你的选择。

这里是如何工作的 - 你的家庭互联网连接的WAN IP可能改变不时 - 一个动态的IP通过DHCP服务,从您的ISP分配。如果您关闭并重新启动互联网调制解调器,您的IP可能会发生变化。这是不好的,因为如果您有一个外部DNS或链接以某种方式指向您的IP,并且您的IP发生更改,因为您的电源已关闭或打开,或者DHCP使用新IP更新了IP租约,则会被切断从你的服务器。所以为了解决这个问题,我们有一个叫做动态DNS的东西。您注册一个DDNS服务(其中许多服务是完全免费的),您可以在PC上运行一个小型的DDNS程序。 DDNS程序每隔几分钟检查一次IP地址,并使用IP更新DDNS服务器。如果您的IP更改,那么在几分钟内DNS服务器会收到更改通知,并且您将重新访问您的服务器。

为了得到这一点,你需要设置你的本地互联网连接转发到端口80上的传入连接的所有设置(您的网站大概就80运行,除非你改变了它)到Web服务器。将服务器的本地IP地址设置为静态IP地址(因此它不会在本地网络中更改,您知道类似192.168.1.100或任何适合您需要的内容),并修改您的Internet网关/调制解调器/路由器以将端口80上的所有内容到您的服务器电脑。

我喜欢用免费的DDNS服务,称为无IP(http://no-ip.com/)。它是免费的,简单可靠。创建一个帐户,选择一个子域名 - 你可以使用something.bounceme.net或其他预定义的免费DDNS名称。选择名称后,在服务器PC上安装DDNS/No-IP程序。现在something.bounceme.net将永远转到您的家庭IP。如果您正确设置端口转发,端口80上的任何内容都会自动转到您的网络服务器。

现在最后一步是获得一个正常的域名指向你的家,而不是IP的something.bounceme.net。你可以支付非IP来做一些花哨的东西,或者你可以以自由的方式做到这一点,我将在这里解释。

我上次使用Godaddy作为域名注册商,并且所有事情都发生了很大的变化,您可能需要致电Godaddy或您的域名注册商,并询问您的服务在何处/如何进行。

首先是,你需要一个域名。假设你拥有homesite.com,并且让我们说你想让laptop.homesite.com指向你的家庭网络服务器。

对于域homesite.com,添加类型CNAME的DNS记录与“笔记本电脑”的关键,你的DDNS名称“something.bounceme.net”的值。这将使laptop.homesite.com将解决您的家庭IP地址。合理?现在,当你键入laptop.homesite.com时,DNS会告诉它检查something.bounceme.net,这将解析为你的家庭IP。

CNAME条目有一些限制。您不能仅将“homesite.com”转发给您的DDNS IP。你基本上必须使用一个子域名项,如笔记本电脑或家庭或类似的东西。但是,您可以做的一件事是使用“子域”条目WWW,以便www.homesite.com将指向您的家庭IP。如果您使用Godaddy,您将获得一个免费有限的托管帐户,并在您的域名上显示Godaddy广告。您可以将此帐户设置为“homesite.com”,并在其中放置一些重定向代码以将用户发送到“www.homesite.com”。这样,人们输入homesite.com并自动发送到www.homesite.com。

我希望这是有道理的。

让我们来回顾一下 - 设置您的服务器静态IP,设置端口转发,以便端口80指向您服务器的本地IP,设置DDNS(如http://www.no-ip.com)并安装其DDNS程序,设置CNAME与您的域名注册商www.yoursite.com指向您的家庭服务器(CNAME www - > your-ddns-url.bounceme.net)。现在,您应该可以通过www.yoursite.com从全球任何地方,从本地互联网连接或星巴克访问您的服务器。

您还可以为FTP服务器(通常为21)设置端口转发,以远程编辑您的网站或访问您的家庭文件。当你可以远程访问你的家用电脑时,你可以做各种各样的事情。

我希望这篇短文将帮助您理解在所有设备上访问apache VHost所必需的每个部分。我喜欢使用DDNS设置/选项,因为您不需要为每个设备或类似设备设置主机文件。这就像访问一个常规网站!

问题或意见欢迎。我从字面上把这一切都写出来,我希望它有帮助。