是否可以配置xampp来提供htdocs
目录之外的文件?
例如,假设我的文件位置如下:
C:\projects\transitCalculator\trunk\TransitCalculator.php
和我的xampp文件通常来自:
C:\xampp\htdocs\
(因为这是默认配置)是否有某种方法可以让Apache识别并提供我的TransitCalculator.php
文件,而无需在htdocs
下移动它?我希望Apache能够提供/访问项目目录的全部内容,我不想在htdocs
下移动项目目录。
编辑:编辑将Apache添加到问题标题,使Q / A更“可搜索”
答案 0 :(得分:347)
好的,根据pix0r,Sparks'和Dave的答案,看起来有三种方法可以做到这一点:
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之前 - 如果已经安装了搜索和销毁东西)。
现在,您可以通过浏览到http://transitcalculator.localhost/来访问该目录。
从http.conf
文件的〜第200行开始,复制<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"
(或任何您想要的内容)。
编辑〜第203行以匹配您的新位置(在本例中为C:/Projects
)。
注意:
答案 1 :(得分:91)
您可以通过编辑XAMPP \ apache \ conf \ httpd.conf中的 DocumentRoot 设置来重新定位它。
目前应该是:
C:/ XAMPP / htdocs中
将其更改为:
C:/项目/ transitCalculator /中继线
答案 2 :(得分:48)
VirtualHost也可以为此工作,并且可以更好地为您工作,因为您可以托管多个项目而无需子目录。这是你如何做到的:
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/,它将直接映射到该目录。
如果您尝试复制正在开发位于域名根目录的网站的生产环境,这可能会有所帮助。例如,您可以指向具有绝对路径的文件,这些路径将转移到服务器:
<img src="/images/logo.png" alt="My Logo" />
而在使用别名或子目录的环境中,您需要跟踪“images”目录相对于当前文件的确切位置。
答案 3 :(得分:14)
您可以将Apache设置为从任何地方提供任何限制的页面,但它通常以更安全的形式分发。
编辑您的apache文件(http.conf是更常见的名称之一)将允许您设置任何文件夹,使其显示在您的webroot中。
编辑:
alias myapp c:\ myapp \
我已经编辑了我的答案,在http.conf文件中包含了创建别名的格式,这有点像windows中的快捷方式或un * x下的符号链接,其中Apache'假装'文件夹在webroot中。从长远来看,这可能会对你更有用。
答案 4 :(得分:8)
如果您尝试让XAMPP使用网络驱动器作为文档根目录,则必须在httpd.conf中使用UNC路径。 XAMPP无法识别您的映射网络驱动器。
例如以下内容不起作用, DocumentRoot“X:/ webroot”
但是这会, DocumentRoot“//192.168.10.100/webroot”(注意正斜杠,而不是反斜杠)
答案 5 :(得分:4)
允许Apache 2托管htdocs之外的网站的解决方案:
在httpd.conf中的“DocumentRoot”指令下面,您应该看到一个目录块。将此目录块替换为:
<Directory />
Options FollowSymLinks
AllowOverride All
Allow from all
</Directory>
请勿在真实环境中使用此配置