一尘不染

使XAMPP / Apache在htdocs之外提供文件[关闭]

php

是否可以将xampp配置为在htdocs目录之外提供文件?

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

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

我的xampp文件通常从以下位置提供:

C:\xampp\htdocs\

(因为这是默认配置)是否有某种方法可以使Apache识别并提供我的TransitCalculator.php文件而不将其移到下面htdocs?最好是,我希望Apache提供/具有对projects目录的全部内容的访问权,并且我不想将projects目录移至htdocs

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


阅读 247

收藏
2020-05-26

共1个答案

一尘不染

好的,按照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>
    

  4. 打开您的主机文件(C:\ Windows \ System32 \ drivers \ etc \ hosts)。

  5. 127.0.0.1 transitcalculator.localhost #transitCalculator
    

到文件末尾(在Spybot-搜索并销毁文件之前,如果已安装)。

  1. 保存(您可能需要将其保存到桌面,更改旧主机文件的权限(右键单击>属性),然后将新文件复制到旧文件上的目录中(或重命名旧文件),如果使用的是Vista并有麻烦)。
  2. 重新启动Apache。

现在,您可以通过浏览到来访问该目录。


进行别名

  1. http.conf文件的〜200行开始,在<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. 编辑〜203行以匹配您的新位置(在本例中为C:/Projects)。


笔记:

  • 您必须使用正斜杠“ /”而不是反斜杠“ \”。
  • 不要在结尾加上“ /”。
  • 重新启动服务器
2020-05-26