Php 在Htdoc Webroot之间切换-更改我的";DocumentRoot";变量在";httpd.conf“;还是使用符号链接?

Php 在Htdoc Webroot之间切换-更改我的";DocumentRoot";变量在";httpd.conf“;还是使用符号链接?,php,apache,httpd.conf,htdocs,Php,Apache,Httpd.conf,Htdocs,在这个问题上,我已经完全不知所措了。作为一个经常同时在多个网站上工作的人(我肯定这里不止我一个人),每当我想在不同的网站上工作时,重命名我的“htdocs”目录就变得令人沮丧,所以我决定编写一个简单的脚本 我的第一种方法是根据我提供的目录输入重置“httpd.conf”中的“DocumentRoot”变量,但是,在主“/Applications/XAMPP/”目录之外有一个DocumentRoot已被证明是一个更大的问题。正如您所看到的,我正在运行带有XAMPP安装的OSX。理想情况下,我希望我

在这个问题上,我已经完全不知所措了。作为一个经常同时在多个网站上工作的人(我肯定这里不止我一个人),每当我想在不同的网站上工作时,重命名我的“htdocs”目录就变得令人沮丧,所以我决定编写一个简单的脚本

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

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

这两种方法本身听起来都不太难,但从学习Xcode到AppleScript,再到Apache的httpd.conf文档,我觉得我已经经历了足够多的麻烦。我每次尝试都有权限,但还没有任何结果


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

考虑到你使用的是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应该理解它并将您带到该站点。很简单

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


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

一旦您了解了virtualHost的内容,比方说您将使用基于名称的virtualHost并编辑主机文件,以使所有这些名称与您的开发服务器IP匹配,一旦完成,您将看到您必须为每个新项目调整所有这些virtualHost上的documentRoot和目录设置

因此存在一个通用解决方案:mod_vhost_别名: 所有虚拟主机都是相同的,都有变量(documentRoot、serverName等)。如果要为某些项目设置特定的设置,请确保允许.htaccess文件,并在其中设置特定的内容