我试图运行多个虚拟主机(?),例如: http:/ localhost将指向一个项目,http:/ newsite到另一个和http:/ myfavourite再次向另一个项目提供不同的文档根目录。
(由于超链接发布限制,每个http://都是http:/ here)
我没有成功查看在/ etc / apache2中编辑apache文件的位置。我在寻找一个vhosts文件吗?
任何建议都很棒,谢谢。
答案 0 :(得分:9)
这是一本电子书的一章,解释了如何创建虚拟主机以完全按照您的需要进行操作 - 示例使用的是Ubuntu:Creating A Local Domain Using Apache Virtual Hosts
用几句话说:
/etc/hosts
),以便新的“伪域名”指向您的计算机。对于VirtualHost,使用Ubuntu,您可以在/etc/apache2/sites-available/
中创建一个新文件;例如名为your-site.com
;它会包含这样的内容:
<VirtualHost *:80>
ServerName your-site.com
DocumentRoot /.../www/...
<Directory /.../www/...>
Options Indexes FollowSymLinks Includes
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
你注册这个文件,所以它由Apache加载,使用这个命令:
sudo a2ensite your-site.com
然后,重新加载Apache:
sudo /etc/init.d/apache2 reload
然后,您必须编辑/ etc / hosts以添加如下所示的行:
127.0.0.1 your-site.com
所以“your-site.com”实际指向你自己的电脑。
重要的是,用于在浏览器中访问您的网站的名称是在hosts文件中声明的名称;它也必须与Apache配置中ServerName directivr使用的相同。
当你为一个VirtualHost做了这个......对于其他每个人来说都是一样的:只有站点的名称和它的DocumentRoot才会改变。
希望这有帮助!
答案 1 :(得分:4)
您可以编辑/ etc / hosts并添加多个指向127.0.0.1的名称,然后为每个名称添加VirtualHost条目。根据您的服务器,配置可以在/etc/apache2/conf/httpd.conf或/ etc / apache2 / sites-available中。如果是后者,那么here是我为配置获得的第一个谷歌搜索。
答案 2 :(得分:1)
localhost与apache无关,但是是你机器的别名(ip 127.x.x.x)。
您必须编辑/etc/hosts
才能完成您想要的工作。
你为什么要这样做?是不是http://localhost/newsite?