是否可以配置 克安普 提供外部文件 htdocs 目录?

例如,假设我有一个文件,位置如下:

C:\projects\transitCalculator\trunk\TransitCalculator.php

和我的 克安普 文件通常由以下位置提供:

C:\xampp\htdocs\

(因为这是默认配置)有没有办法让 Apache 识别并提供我的服务 TransitCalculator.php 文件而不将其移动到下面 htdocs?最好我希望 Apache 提供/访问项目目录的全部内容,并且我不想将项目目录移动到 htdocs.

编辑:编辑以将 Apache 添加到问题标题中,以使 Q/A 更“可搜索”

有帮助吗?

解决方案

好的,根据 像素0r的, 火花' 和 戴夫的答案看起来有三种方法可以做到这一点:


虚拟主机

  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 - 搜索和销毁内容之前,如果您安装了该内容)。

  6. 保存(如果您使用的是Vista 和有麻烦)。
  7. 重新启动阿帕奇。

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


创建别名

  1. 从你的第 200 行开始 http.conf 文件,复制之间的所有内容 <Directory "C:/xampp/htdocs"></Directory> (~第 232 行)并将其粘贴到下面 C:/xampp/htdocs 替换为您想要的目录(在本例中 C:/Projects) 为您的服务器提供新目录的正确权限。

  2. 找出 <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. 编辑 ~line 203 以匹配您的新位置(在本例中 C:/Projects).


笔记:

  • 您必须使用正斜杠“/”而不是反斜杠“\”。
  • 请勿在末尾包含尾随“/”。
  • 重新启动你的服务器.

其他提示

您可以通过编辑来重新定位它 文档根目录 设置在 XAMPP\apache\conf\httpd.conf 中。

目前应该是:

C:/xampp/htdocs

将其更改为:

C:/projects/transitCalculator/trunk

VirtualHost 也适用于此,并且可能更适合您,因为您可以托管多个项目而不需要子目录。操作方法如下:

httpd.conf(或相对于 httpd.conf 的 extra\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/ 它将直接映射到该目录。

如果您尝试复制一个生产环境,在该环境中开发一个位于域名根上的站点,这会很有帮助。例如,您可以指向具有绝对路径的文件,该路径将传递到服务器:

<img src="/images/logo.png" alt="My Logo" />

而在使用别名或子目录的环境中,您需要准确跟踪“images”目录相对于当前文件的位置。

您可以将 Apache 设置为从任何地方提供页面服务,但没有任何限制,但它通常以更安全的形式分发。

编辑 apache 文件(http.conf 是更常见的名称之一)将允许您设置任何文件夹,使其出现在您的 webroot 中。

编辑:

别名 myapp c:\myapp\

我编辑了我的答案,以包含在 http.conf 文件中创建别名的格式,这有点像 Windows 中的快捷方式或 un*x 下的符号链接,其中 Apache“假装”文件夹位于 webroot 中。从长远来看,这可能对您更有用。

如果您尝试让 XAMPP 使用网络驱动器作为文档根目录,则必须在 httpd.conf 中使用 UNC 路径。XAMPP 将无法识别您的映射网络驱动器。

例如,以下内容不起作用,请记录“ x:/webroot”

但这将是Document Root“ //192.168.10.100/webroot”(请注意前向斜线,而不是后斜线)

允许 Apache 2 托管 htdocs 之外的网站的解决方案:

在 httpd.conf 中的“DocumentRoot”指令下方,您应该看到一个目录块。将此目录块替换为:

<Directory />
    Options FollowSymLinks
    AllowOverride All
    Allow from all
</Directory> 

请记住不要在真实环境中使用此配置

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top