使XAMPP / Apache服务文件在htdocs之外
是否可以configurationxampp提供一个文件在htdocs目录之外? 
例如,说我有一个文件位于如下:
 C:\projects\transitCalculator\trunk\TransitCalculator.php 
我的xampp文件通常从以下地方提供:
 C:\xampp\htdocs\ 
  (因为这是默认的configuration)有没有办法让Apache识别和提供我的TransitCalculator.php文件,而不必在htdocs下移动它? 最好我希望Apache服务/有权访问项目目录的全部内容,我不想移动htdocs下的项目目录。 
编辑:编辑添加Apache的问题标题,使Q / A更“可search”
好吧,根据pix0r , Sparks和Dave的回答,看起来有三种方法可以做到这一点:
虚拟主机
- 打开C:\ xampp \ apache \ conf \ extra \ httpd-vhosts.conf。
-  取消注释第19行( NameVirtualHost *:80)。
- 
添加你的虚拟主机(〜第36行): <VirtualHost *:80> DocumentRoot C:\Projects\transitCalculator\trunk ServerName transitcalculator.localhost <Directory C:\Projects\transitCalculator\trunk> Order allow,deny Allow from all </Directory> </VirtualHost>
- 
打开您的主机文件(C:\ Windows \ System32 \ drivers \ etc \ hosts)。 
- 
加 127.0.0.1 transitcalculator.localhost #transitCalculator到文件末尾(在Spybot – Search&Destroy之前,如果你已经安装的话)。 
- 保存(您可能必须将其保存到桌面,更改旧主机文件上的权限(右键单击>属性),然后将新文件复制到旧文件夹中(或重命名旧文件),如果您正在使用Vista和麻烦)。
- 重新启动Apache。
现在,您可以通过浏览到http://transitcalculator.localhost/来访问该目录。
打个别名
- 
开始你的 http.conf文件的第200行,复制<Directory "C:/xampp/htdocs">和</Directory>(http.conf行)之间的所有内容,并用C:/xampp/htdocsreplace所需的目录(在本例中为C:/Projects),以便为您的服务器提供新目录的正确权限。
- 
find <IfModule alias_module></IfModule>部分(〜第300行)并添加Alias /transitCalculator "C:/Projects/transitCalculator/trunk"(或者与您的期望相关的任何内容)在模块标签内部的 Alias注释块下面。
更改您的文档根目录
- 
在C:\ xampp \ apache \ conf \ httpd.conf中编辑〜第176行; 将 DocumentRoot "C:/xampp/htdocs"更改为#DocumentRoot "C:/Projects"(或任何你想要的)。
- 
编辑〜行203以匹配您的新位置(在这种情况下是 C:/Projects)。
笔记:
- 你必须使用正斜杠“/”而不是反斜杠“\”。
- 最后不要包含尾部的“/”。
- 重启你的服务器 。
您可以通过编辑XAMPP \ apache \ conf \ httpd.conf中的DocumentRoot设置来重定位它。
目前应该是:
C:/ XAMPP / htdocs中
将其更改为:
C:/项目/ transitCalculator /行李箱
一个虚拟主机也可以为此工作,并可能为您更好地工作,因为您可以主持几个项目,而不需要子目录。 以下是你如何做到这一点:
httpd.conf(或者是相对于httpd.conf的\ httpd-vhosts.conf文件,后面的斜线\“\”可能导致它不起作用):
 NameVirtualHost *:80 # ... <VirtualHost *:80> DocumentRoot C:\projects\transitCalculator\trunk\ ServerName transitcalculator.localhost <Directory C:\projects\transitCalculator\trunk\> Order allow,deny Allow from all </Directory> </VirtualHost> 
HOSTS文件(通常是c:\ windows \ system32 \ drivers \ etc \ hosts):
 # localhost entries 127.0.0.1 localhost transitcalculator.localhost 
现在重新启动XAMPP,你应该可以访问http://transitcalculator.localhost/ ,它将直接映射到该目录。
如果您正在尝试复制生产环境,而您正在开发一个位于域名根目录的网站,则这会很有帮助。 例如,您可以指向带有绝对path的文件,这些文件将传递给服务器:
 <img src="http://img.dovov.comlogo.png" alt="My Logo" /> 
而在使用别名或子目录的环境中,您需要确切地跟踪“images”目录相对于当前文件的位置。
您可以将Apache设置为在任何地方提供任何限制的页面,但通常以更安全的forms分发。
编辑你的apache文件(http.conf是一个比较常用的名称)将允许你设置任何文件夹,使它出现在你的webroot中。
编辑:
别名myapp c:\ myapp \
我已经编辑了我的答案,包括在http.conf文件中创build别名的格式,这有点像Windows中的快捷方式或un * x下的符号链接,其中Apache“假装”文件夹位于webroot中。 从长远来看,这可能会对你更有用。
另外,如果你想让XAMPP使用networking驱动器作为你的文档根目录,你必须在httpd.conf中使用UNCpath。 XAMPP将无法识别您映射的networking驱动器。
例如以下将不起作用,DocumentRoot“X:/ webroot”
但是,这将是DocumentRoot“//192.168.10.100/webroot”(注意正斜杠,而不是反斜杠)
这些解决scheme都不能轻松工作。 下面是允许Apache 2托pipehtdocs之外网站的最简单的解决scheme:
在httpd.conf中的“DocumentRoot”指令下,你应该看到一个目录块。 将此目录块replace为:
 <Directory /> Options FollowSymLinks AllowOverride All Allow from all </Directory> 
切记不要在实际环境中使用此configuration