我想在我的计算机上使用 XAMPP for Linux 运行两个网站:
- 一个用于我的公共网站开发
- 一篇用于我的论文(书目管理、摘要……)
它们完全不相关,我不希望其中一个在另一个的子域上运行,也不想弄乱.htaccess 文件。
最好的方法是什么?
答案1
只需按原样设置您的虚拟主机:
Name VirtualHost 127.0.0.1
<VirtualHost *:80>
DocumentRoot /www/thesis
ServerName thesiswork
</VirtualHost>
<VirtualHost test2:80>
DocumentRoot /www/test2
ServerName test2
</VirtualHost>
<VirtualHost test3:80>
DocumentRoot /www/test3
ServerName test3
</VirtualHost>
然后在您的 /etc/hosts 文件中执行以下操作:
example.com 127.0.0.1
test2.example.com 127.0.0.1
test2.example.com 127.0.0.1
test2 127.0.0.1
test3 127.0.0.1
这样,您就可以直接访问:example.com 或 test3.example.com (在对主机进行配置更改后,请确保重新启动网络。
答案2
我推荐一个基于端口的 vhosts.conf,如下所示(这是完整的 vhosts.conf):
NameVirtualHost *:80
<virtualHost *:80>
DocumentRoot "/var/www/"
ServerName localhost
ServerAdmin admin@localhost
</VirtualHost>
Listen 61 #use random free port number
<virtualHost *:61>
DocumentRoot "/var/vhosts/thesis/"
ServerName asdf
ServerAdmin admin@asdf
</VirtualHost>
然后您可以使用以下方式调用您的页面http://本地主机/和你的论文http://本地主机:61/
基于端口的虚拟主机相对于基于名称的虚拟主机的优势在于您不需要域名,也不需要弄乱您的主机文件,我发现这有点“肮脏”。
确保您允许访问您希望托管论文文件的目录,例如在您的 httpd.conf 中,或者只是将其添加到您的 vhosts.conf 中:
<Directory "/var/vhosts/">
Order Deny,Allow
Allow From All
AllowOverride All
</Directory>
答案3
127.0.0.0/8 表示 127.0.0.2、127.0.0.3、127.0.0.4 以及 ... 直到 127.254.254.254 或类似的 IP 地址都是可用的 IP 地址。因此,如果基于名称的虚拟主机不够好,您可以为每个网站设置不同的本地主机 IP 地址。
答案4
您应该使用基于名称的虚拟主机。完整详细信息如下: http://httpd.apache.org/docs/current/vhosts/name-based.html
基本思想是在本地主机上设置一个默认虚拟主机,如下所示:
<VirtualHost _default_:*>
DocumentRoot /www/default
</VirtualHost>
然后,对于你的论文网站,你可以设置另一个虚拟主机
<VirtualHost *:80>
DocumentRoot /www/thesis
ServerName thesiswork
</VirtualHost>
然后,您必须在本地计算机上编辑 /etc/hosts 文件以包含“thesiswork”,指向 127.0.0.1