在Htdoc Webroots之间切换 - 在“httpd.conf”中更改我的“DocumentRoot”变量还是使用符号链接?

时间:2011-01-04 06:38:18

标签: php apache httpd.conf htdocs

我已经正式结束了这个问题。作为一次经常在几个网站上工作的人(我敢肯定我并不孤单),每当我想在不同的网站上工作时,重命名我的“htdocs”目录就会变得令人沮丧,所以我决定扔掉一个简单的脚本。

我的第一种方法是根据我提供的目录输入重置“httpd.conf”中的“DocumentRoot”变量,但是,在主要的“/ Applications / XAMPP /”目录之外使用DocumentRoot已证明是更大的问题。如您所见,我正在运行带有XAMPP安装的OSX。理想情况下,我希望我的所有网站都位于“/ Users / Me / Sites / *”。即使我试图在XAMPP的基本目录中移动我的网站,Apache也不想加载“htdocs”以外的任何东西作为我的DocumentRoot。

我的下一个方法是简单地添加符号链接到我正在处理的每个站点中的所有文件/目录到“htdocs”。这在浏览器中加载了基本的html文件,但是,我主要使用PHP,这似乎不想渲染(我可以看到该文件,但它不会显示为网页)。

这些方法本身听起来都不太难,但从学习Xcode,AppleScript到Apache的httpd.conf文档,我觉得我经历了足够的麻烦。我已经玩过我所经历的每次尝试的权限,但我还没有发现任何事情。

我确信有很多其他网站设计师在过去遇到过这个问题,你的解决方案是什么?

3 个答案:

答案 0 :(得分:1)

实际上这很容易实现,因为你使用的是XAMPP,我不是100%但如果你在/bin/apache2/conf/extras/下,你应该在这个文件中看到一个名为httpd-vhosts.conf的文件,你可以添加为你想要的许多虚拟主机。确保将ServerName设置为唯一的。完成后,请确保在httpd.conf

中启用了包含虚拟主机

现在,您只需编辑主机文件即可。我不确定OSX上的这个位置,因为它基于linux我会说/etc/hosts但谷歌会帮助你。为您的每个网站添加一行,如下所示:

127.0.0.1     site1.dev
127.0.0.1     site2.dev

等。现在重新启动apache并在浏览器中键入site1.dev,apache应该理解它并带你到那个站点。很简单。

答案 1 :(得分:0)

布拉德的解决方案应该有效。

如果您使用的是OSX,您可能还想查看MAMP(http://www.mamp.info/en/index.html)。有一个免费的“Pro”版本。我只使用了免费版本,但将根目录从一个项目更改为另一个项目非常简单。只有一种问题是使用套接字连接的MySQL,但如果你知道自己在做什么,这不是什么大问题。

答案 2 :(得分:0)

一旦你理解了虚拟主机的内容,我们就会使用基于名称的虚拟主机并编辑你的主机文件,以获得与你的开发服务器IP相匹配的所有名称,一旦完成,你将看到你必须调整documentRoot和目录设置在每个新项目的所有这些虚拟主机上。

因此存在通用解决方案:mod_vhost_alias:http://httpd.apache.org/docs/2.2/mod/mod_vhost_alias.html 所有虚拟主机都是相同的,包含变量(documentRoot,serverName等)。如果您想要某些项目的特定设置,请确保您已允许.htaccess文件并在那里设置特定的内容。

相关问题