Tim*_*002 0 xampp virtual-hosts
我在我的WIN7笔记本电脑上运行XAMPP来开发网站.现在我使用虚拟主机和修改后的主机文件,因此我可以通过此URL访问我的网站"www.thisshouldbemysite.nl".但它将从我的XAMPP服务器加载.
对我来说,这个工作正常.我可以做我想做的事.但我也想从外部设备访问此服务器,例如智能手机或平板电脑,以便我可以看到该网站在其他设备上的呈现方式.但是在平板电脑浏览器中输入我的XAMPP PC的IP地址会将我带到C:\xampp\htdocs目录,我无法访问该C:\xampp\htdocs\thisshouldbemysite.nl目录.
有没有人知道我如何配置我的服务器以使两者都工作(本地和远程).远程应该在同一个本地网络中!
在这里,您可以找到我当前的设置.
主机:
127.0.0.1 www.thisshouldbemysite.nl
Run Code Online (Sandbox Code Playgroud)
的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>
Run Code Online (Sandbox Code Playgroud)
我想介绍一些事情,以便为您提供全面的图片,也许如果您更好地了解流程的每个部分,那么您可以确定问题所在,从而找到答案.
我们需要了解的第一件事是您的浏览器在您输入域名时知道去哪里.您的浏览器将检查您的本地主机文件,然后检查您的本地DNS缓存,然后向DNS服务器发出请求.DNS服务器由ISP/DHCP自动设置,或在您的Internet连接设置中手动设置.因此,对域名发出请求后,您的浏览器/操作系统将按顺序检查这些位置以匹配条目.如果未找到任何条目,则域名将无法解析.
DNS服务器可以有不同类型的条目.它可以告诉你托管域名的位置,它可以告诉你子域名在哪里,它可以将域名指向另一个DNS服务器......它是一个灵活的多用途点,域名可以指向任何地方.此外,根据为域名设置的DNS条目的类型,您的浏览器将自动知道是否需要向另一个DNS服务器询问域名所指向的位置,或者它是否是它所寻找的最终结果.设置不正确的DNS服务器可能会导致用户陷入DNS循环 - 其中一个DNS指向另一个DNS,第二个DNS指向第一个DNS.这些事情很容易搞清楚.
Hosts文件基本上类似于本地手动设置的类似DNS的系统.它允许你说"any.domain"在"any-ip-address".通过这种方式,您可以在本地重写或忽略其他DNS资源.这是很好的为当地的东西,但如果你会想从在互联网上或通过各种设备访问的东西,我强烈建议使用DDNS服务,我将在下面.
--- Apache VHost文件---
在vhosts文件中,我设置了默认的vhost.这样,如果我输入我的IP或没有明确定义vhost的域名,我仍然可以从我的Web服务器获得某种响应.这只是我的偏好,但完全没必要.设置默认值后,我明确定义了要提供的域/子域.
NameVirtualHost*:80
##############本地主机ServerAdmin webmaster @ localhost DocumentRoot"D:/ xampp/htdocs"ServerName localhost
<Directory "D:/xampp/htdocs">
AllowOverride All
Order Allow,Deny
Allow from all
Require all granted
</Directory>
Run Code Online (Sandbox Code Playgroud)
######## othersite.local.whatever
ServerAdmin webmaster @ localhost DocumentRoot"D:/xampp/othersite.local.whatever"ServerName othersite.local.whatever AllowOverride All Order Allow,Deny Allow from all Require all all
保存VHost文件后,重新启动apache.如果Apache开始,然后会自动停止运行,那么你可能有一个错误在你的Apache配置/虚拟主机文件,仔细检查你的工作,尽量节省每一个改变你做,直到它的工作原理后,启动Apache.
--- Windows主机文件---
除非你有一个DNS服务器设置,你将要修改Windows HOSTS文件为了要告诉你的机器othersite.local.whatever点到Apache服务器.该文件的作用是在本地将域名指向ip地址.它不会影响其他计算机,只有这台计算机也在运行您的服务器.
hosts文件位于C:/ windows/system32/drivers/etc/hosts
根据您的Windows权限,您可能需要先将hosts文件复制到桌面,使用记事本或您喜欢的文本编辑器打开它,进行修改,保存并将其复制回原始位置.在新行上,添加一个新条目:
127.0.0.1 othersite.local.whatever
在保存您的主机文件回C:/窗/ SYSTEM32 /驱动器的/ etc /你现在应该能够访问othersite.local.whatever在服务器上没有问题.如果您有其他本地Windows计算机,您可以修改其主机文件以指向服务器的IP地址(通常类似于192.168.1.xx),以便这些计算机也可以访问otherite.local.whatever中的vhost.
192.168.1.?? othersite.local.whatever
---通过替代方式解决你的问题---
根据您的需求,您可以做一些事情.
1)修改所有Windows计算机上的vhost文件,对如何在其他设备上进行一些研究.如果所有设备都认为otherite.local.whatever指向您的服务器,那么您的服务器应该使用正确的vhost页面进行响应.这就是它在本地网络或WAN /互联网上工作的方式.
2)设置本地DNS服务器,将所有设备指向DNS,并在DNS中添加一个条目以指向服务器的域.如果您以前从未这样做过,这是一项复杂的任务,但您可能会发现它很有用.
3)设置动态DNS(DDNS).这个有点复杂,但实际上很容易做到.它可以真正帮助您打开您的选择.
以下是它的工作原理 - 您的家庭互联网连接的WAN IP可能会不时更改 - 您的ISP通过其DHCP服务分配的动态IP.如果您再次打开和关闭互联网调制解调器,您的IP可能会发生变化.这不是很好,因为如果你有一个以某种方式指向你的IP的外部DNS或链接,并且你的IP发生了变化,因为你的电源关闭和打开,或者DHCP用新IP更新你的IP租约,那么你就被切断了来自你的服务器.因此,为了解决这个问题,我们有一个叫做动态DNS的东西.您使用DDNS服务注册(其中许多是完全免费的),您在PC上运行一个小的DDNS程序.DDNS程序只需每隔几分钟检查一次您的IP地址,并使用您的IP更新DDNS服务器.如果您的IP发生了变化,那么在几分钟之内,DNS服务器就会收到更改通知,您将重新访问服务器.
要获得所有这些设置,您需要设置本地Internet连接以将端口80上的传入连接(您的网站可能在80上运行,除非您将其更改)转发到您的Web服务器.将服务器的本地IP地址设置为静态IP地址(因此它不会在本地网络上更改,您知道类似192.168.1.100或任何适合您需要的地址)并修改您的Internet网关/调制解调器/路由器以转发端口80上的所有内容到您的服务器PC.
我喜欢使用名为No-IP的免费DDNS服务(http://no-ip.com/).它是免费的,简单可靠的.使用它们创建一个帐户,选择一个子域 - 您可以使用something.bounceme.net或其他预定的免费DDNS名称.选择名称后,在服务器PC上安装DDNS/No-IP程序.现在,something.bounceme.net将永远转到您的家庭IP.如果您正确设置端口转发,端口80上的任何内容都将自动转到您的网络服务器.
现在最后一步是获得一个正常的域名,指向你的家庭IP而不是something.bounceme.net.你可以支付No-IP做一些花哨的东西,或者你可以用免费的方式来做,这就是我将在这里解释的.
我最后一次使用Godaddy作为域名注册商,所有内容都发生了很大的变化,您可能需要致电Godaddy或您的域名注册商,并询问您在哪里/如何使用他们的服务.
首先,您需要一个域名.假设您拥有homesite.com,我们也说您希望laptop.homesite.com指向您的家庭网络服务器.
对于域homesite.com,添加CNAME类型的DNS记录,其密钥为"laptop",值为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)设置端口转发,以远程编辑您的网站或访问您的主文件.当您可以远程访问家用PC时,您可以执行各种操作.
我希望这个简短的步骤将帮助您了解在所有设备上访问apache VHost所需的每个部分.我喜欢使用DDNS设置/选项,因为您不需要为每个设备或类似设置设置主机文件.就像访问常规网站一样!
欢迎提出问题或意见.我真的把这一切写在了我的头顶,我希望它有所帮助.
| 归档时间: |
|
| 查看次数: |
7522 次 |
| 最近记录: |