我有一台连接到路由器的服务器,它装有 ubuntu 12.04。它已安装好 apache/mysql/php,随时可以使用。文件夹结构如下:
/var/www -- this isnt the root
-/libs
-/logs
-/public - this is the root
-/vhosts - all subdomains go here
我在 vhosts 中有一个名为 mysite 的文件夹。我进入 /etc/apache2/sites-available 并创建了一个文件,内容如下 -> (虚拟主机文件)并且我还在 /etc/hosts 文件中添加了一个条目,其中包含:127.0.1.1 mysite.dev,并且我还做了
sudo a2ensite mysite
我尝试通过 mysite.dev 和我们的公共 IP 从计算机访问网站,但无法查看。当我尝试我们的公共 IP 时,上述结构中的公共目录确实显示在所有计算机上。但对于在 vhosts 中添加的任何内容,网站都不会显示。没有附加域名,只有我们的 IP。我尝试在 sites-available 中的 mysite 文件中将端口从 80 更改为 9999,并尝试了 myip:9999,但这也没有用。我做错了什么?
编辑:我忘了提到服务器在路由器上是 dmzed。
答案1
可在少数本地机器上访问
如果你想我的网站仅在几台本地机器上工作,你总是可以编辑他们的/etc/hosts文件。Windows 也有你可以编辑的 hosts 文件,它们位于C:\Windows\System32\drivers\etc\hosts。
在您想要设置能够访问 mysite.dev 的计算机上的 hosts 文件中,只需将其添加到其底部(Windows 和 Linux 均适用):
SERVERIP mysite.dev www.mysite.dev
在哪里更换服务器IP使用运行 Apache 的服务器的本地 IP 地址。
可在整个本地网络上访问
如果您希望它在您的本地网络上运行,您将需要一个 DNS 服务器并配置网络 DHCP 服务器,以便您的本地机器通过您的服务器执行所有 DNS 查询。
首先,让我们安装绑定。
sudo apt-get install bind9
然后我们需要开始配置绑定并添加 DNS 区域,在本例中为我的网站. 首先编辑您的/etc/bind/named.conf.local文件并向其中添加以下块:
zone "mysite.dev" {
type master;
file "/etc/bind/zones/mysite.dev;
}
然后,创建目录/etc/bind/zones。
sudo mkdir /etc/bind/zones
现在,让我们添加区域文件我的网站域。创建并编辑文件/etc/bind/zones/mysite.dev并添加以下内容:
$ORIGIN . ; -*- zone -*-
$TTL 600 ; 10 minutes
mysite.dev IN SOA YOURSERVERNAME. hostmaster.mysite.dev. (
2012102300 ; serial
6H ; refresh
30M ; retry
4W ; expire
10M ; minimum (10 minutes)
)
NS YOURSERVERNAME.
A YOURSERVERIP
$ORIGIN mysite.dev.
www A YOURSERVERIP
现在仔细看看这里。你需要改变以下两个您的服务器名称以及两次发生的你的服务器IP引用与您的服务器匹配的那些。例如服务器01.本地和10.0.0.2。要查找您的服务器名称,请hostname -f
在服务器的终端窗口中输入。
如果你要更改此区域文件中的任何内容(例如稍后添加子域名等),你必须记得更新序列号. 在这种情况下2012102300。必须将该值设置为更高的值,例如2012102301。
重新启动绑定服务,sudo service bind9 restart
并且 DNS 服务器应该已为您的域启动并运行。dig @localhost mysite.dev
在跳到下一步之前,您可能应该通过从服务器本身运行来测试这一点。您还可以使用 ,从网络上的客户端计算机进行测试dig @YOURSERVERIP mysite.dev
,其中你的服务器IP是您的服务器的 IP 地址。
现在,您需要做的最后一件事是更新您的 DHCP 服务器配置,并将您的本地服务器设置为(如果可能的话,设置为辅助)DNS 服务器。遗憾的是,我无法轻松帮助您完成此操作。
可通过互联网访问
由于没有顶级域名.dev,ICANN 有必要创建这个。目前他们的 gTLD 申请系统已关闭,但也许将来某个时候可以申请 .dev TLD。请注意,他们可能需要一大笔钱。