使 XAMPP/Apache 在 htdocs 之外提供服务文件 [关闭]
-
08-06-2019 - |
题
是否可以配置 克安普 提供外部文件 htdocs
目录?
例如,假设我有一个文件,位置如下:
C:\projects\transitCalculator\trunk\TransitCalculator.php
和我的 克安普 文件通常由以下位置提供:
C:\xampp\htdocs\
(因为这是默认配置)有没有办法让 Apache 识别并提供我的服务 TransitCalculator.php
文件而不将其移动到下面 htdocs
?最好我希望 Apache 提供/访问项目目录的全部内容,并且我不想将项目目录移动到 htdocs
.
编辑:编辑以将 Apache 添加到问题标题中,以使 Q/A 更“可搜索”
解决方案
好的,根据 像素0r的, 火花' 和 戴夫的答案看起来有三种方法可以做到这一点:
虚拟主机
- 打开 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 - 搜索和销毁内容之前,如果您安装了该内容)。
- 保存(如果您使用的是Vista 和有麻烦)。
- 重新启动阿帕奇。
现在您可以通过浏览访问该目录 http://transitcalculator.localhost/.
创建别名
从你的第 200 行开始
http.conf
文件,复制之间的所有内容<Directory "C:/xampp/htdocs">
和</Directory>
(~第 232 行)并将其粘贴到下面C:/xampp/htdocs
替换为您想要的目录(在本例中C:/Projects
) 为您的服务器提供新目录的正确权限。找出
<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"
(或任何你想要的)。编辑 ~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>
请记住不要在真实环境中使用此配置