如何为不同的根目录配置XAMPP Web服务器

110

网站目录是您的应用程序中所有公开和静态文件的主目录,包括图像、样式表和JavaScript文件。它也是前端控制器所在的地方。

因此,问题是当我安装和设置xampp时,我的网站目录是:

xampp\htdocs

我希望您能为我进行设置:

xampp\htdocs\myproject\web

如何操作? 现在,当我在浏览器中输入地址:http://localhost/
我进入了xampp\htdocs目录
我想在浏览器中输入地址:http://localhost/
并进入xampp\htdocs\myproject\web目录。


2
你可以使用我的答案在这里http://stackoverflow.com/questions/18862739/inconsistency-when-switching-between-development-to-live-server/18863056#18863056,通过创建一个独立的虚拟主机,你可以为不同的项目定义不同的根目录,并且通过使用hosts文件,你可以创建新的本地域名。 - Prix
那个虚拟主机文件怎么样了? 它是虚拟主机文件还是其他类型的文件? - vardius
这通常放置在名为 vhosts.conf 的文件中,但在某些情况下也可以放置在 httpd.conf 的末尾。 - Prix
10个回答

182
您可以通过在XAMPP控制面板中单击 apache/conf/httpd.conf 并调整 DocumentRoot 和相应的 Directory 条目来更改Apache的httpd.conf文件。 只需使用 Ctrl+F 查找“htdocs”并将条目更改为您的新路径即可。请参见屏幕截图:

XAMPP config

#
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "C:/xampp/htdocs"
<Directory "C:/xampp/htdocs">

3
可以使用任意的目录吗?即使在另一个分区上也可以吗? - posfan12
@posfan12,我对这个游戏有点晚了,但是既然它使用了完整的路径,你可以把它放在一个完全不同的驱动器上。或者根据你的网络速度,甚至可以将其放在映射的网络驱动器上。 - computercarguy

52
  • 进入 C:\xampp\apache\conf\httpd.conf
  • 打开 httpd.conf
  • 查找标签: DocumentRoot "C:/xampp/htdocs"
  • 将标签修改为:DocumentRoot "C:/xampp/htdocs/myproject/web"
  • 现在查找标签并将其更改为 < Directory "C:/xampp/htdocs/myproject/web" >

  • 重新启动您的 Apache


1
它适用于单个项目,但对于多个项目呢? - Moeez
我来晚了一点,但是我建议不要将DocumentRoot设置为“htdocs”内的特定文件夹。如果你只是在“htdocs”内有一个文件夹,你可以将浏览器指向“localhost/myproject/web”或者“localhost/mysecondproject”(或者你创建的任何文件夹),这样可以让它适用于多个网站。 - computercarguy

25
如果有人希望使用更简单的解决方案,尤其是在Linux(例如Ubuntu)上,一个非常简单的方法是在htdocs文件夹中创建指向所需文件夹的符号链接。例如,如果我想要从名为“/home/some/projects/testserver/” 的文件夹提供文件,并且我的htdocs位于“/opt/lampp/htdocs/”中。只需像这样创建符号链接即可:
ln -s /home/some/projects/testserver /opt/lampp/htdocs/testserver

符号链接命令的使用方法如下: ln -s 目标 源 其中,

target - The existing file/directory you would like to link TO.
source - The file/folder to be created, copying the contents of the target. The LINK itself.

要获取更多帮助,请参阅ln --help。 来源:在Ubuntu中创建符号链接

完成了。只需访问http://localhost/testserver/即可。 实际上,您甚至不需要重新启动服务器。


这是最好的!易于使用且非常灵活。谢谢。 - WahhabB
6
好的,对于Windows系统来说,这个操作是非常好用的,命令为mklink /J source target - user3187724
完美,最简单的解决方案。谢谢! - Max Markson

14

我将我的 htdocs 文件夹从 C:\xampp\htdocs 移动到 D:\htdocs,但没有编辑 Apache 配置文件(httpd.conf)。

步骤1) 将 C:\xampp\htdocs 文件夹移动到 D:\htdocs 步骤2) 使用 mklink 命令在 C:\xampp\htdocs 中创建一个指向 D:\htdocs 的符号链接。

D:\>mklink /J C:\xampp\htdocs D:\htdocs
Junction created for C:\xampp\htdocs <<===>> D:\htdocs

D:\>

第三步) 完成!


10

大家好,你们不会相信这有多简单,我在YouTube上放了一个视频来演示给你们看[点击这里]

现在,步骤如下:

  1. 运行你的xampp控制面板
  2. 点击配置按钮
  3. 选择apache(httpd.conf)
  4. 找到文档根目录
  5. 替换

DocumentRoot "C:/xampp/htdocs" <Directory "C:/xampp/htdocs">

这两行 || C:/xampp/htdocs == 当前根目录位置 || 将C:/xampp/htdocs更改为任何您想要的位置

  1. 保存 完成:启动Apache并转到本地主机 观看演示 [ 点击这里观看视频 ]

7
你也可以在 c:\xampp\apache\conf\httpd-vhosts.conf 中添加一个新的虚拟主机条目,例如:
<VirtualHost *:80>
  ServerAdmin webmaster@dummy-host2.example.com
  DocumentRoot "C:/xampp/htdocs/myproject/web"
  ServerName localhost
  ErrorLog "logs/dummy-host2.example.com-error.log"
  CustomLog "logs/dummy-host2.example.com-access.log" common
</VirtualHost>

在使用 httpd-vhosts.conf 时,请确保它已被包含(取消注释)在 XAMPP/xamppfiles/etc/httpd.conf 文件中。 - Rami Alloush

4

# Possible values for the Options directive are "None", "All",
# or any combination of:
#   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important.  Please see
# http://httpd.apache.org/docs/2.2/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks Includes ExecCGI

#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
#   Options FileInfo AuthConfig Limit
#
AllowOverride All

#
# Controls who can get stuff from this server.
#
Require all granted

将上述代码写入以下标签中 < Directory "c:\projects" > < / Directory > c:(您可以添加任何目录d: e:)是您创建项目文件夹的驱动器。

别名/项目"c:\projects"

现在您可以在浏览器中访问项目目录:

localhost/projects/


2

对于XAMPP版本>=7.5.9-0,还需要相应地更改文件"/opt/lampp/etc/extra/httpd-ssl.conf"中的DocumentRoot。


2

如果您正在运行基于Linux的XAMPP镜像,要更改根目录,请打开:

/opt/lampp/etc/httpd.conf

将默认文档根目录更改为:DocumentRoot "/opt/lampp/htdocs" and <Directory "/opt/lampp/htdocs",改为您的文件夹 DocumentRoot "/opt/lampp/htdocs/myFolder" and <Directory "/opt/lampp/htdocs/myFolder">

-1

您可以在打开XAMP控制面板时更改端口,按照以下步骤操作:

  1. 点击“config net”按钮,
  2. 选择httpd.conf,一个文本文件将会打开,
  3. 检查文件和listen:80
  4. 一旦找到listen:80,请替换为listen:8080,并且
  5. 保存在同一个文件夹中。

完成以上步骤后,您就可以启动本地服务器了。


这不是关于更改端口的问题。 - Noryn Basaya

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接