使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的回答,看起来有三种方法可以做到这一点:


虚拟主机

  1. 打开C:\ xampp \ apache \ conf \ extra \ httpd-vhosts.conf。
  2. 取消注释第19行( NameVirtualHost *:80 )。
  3. 添加你的虚拟主机(〜第36行):

     <VirtualHost *:80> DocumentRoot C:\Projects\transitCalculator\trunk ServerName transitcalculator.localhost <Directory C:\Projects\transitCalculator\trunk> Order allow,deny Allow from all </Directory> </VirtualHost> 
  4. 打开您的主机文件(C:\ Windows \ System32 \ drivers \ etc \ hosts)。

  5.  127.0.0.1 transitcalculator.localhost #transitCalculator 

    到文件末尾(在Spybot – Search&Destroy之前,如果你已经安装的话)。

  6. 保存(您可能必须将其保存到桌面,更改旧主机文件上的权限(右键单击>属性),然后将新文件复制到旧文件夹中(或重命名旧文件),如果您正在使用Vista和麻烦)。
  7. 重新启动Apache。

现在,您可以通过浏览到http://transitcalculator.localhost/来访问该目录。


打个别名

  1. 开始你的http.conf文件的第200行,复制<Directory "C:/xampp/htdocs"></Directory>http.conf行)之间的所有内容,并用C:/xampp/htdocsreplace所需的目录(在本例中为C:/Projects ),以便为您的服务器提供新目录的正确权限。

  2. find<IfModule alias_module></IfModule>部分(〜第300行)并添加

     Alias /transitCalculator "C:/Projects/transitCalculator/trunk" 

    (或者与您的期望相关的任何内容)在模块标签内部的Alias注释块下面。


更改您的文档根目录

  1. 在C:\ xampp \ apache \ conf \ httpd.conf中编辑〜第176行; 将DocumentRoot "C:/xampp/htdocs"更改为#DocumentRoot "C:/Projects" (或任何你想要的)。

  2. 编辑〜行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