Php 使XAMPP/Apache服务文件位于htdocs文件夹之外
是否可以配置为在Php 使XAMPP/Apache服务文件位于htdocs文件夹之外,php,apache,xampp,server-configuration,Php,Apache,Xampp,Server Configuration,是否可以配置为在htdocs目录之外提供文件 例如,假设我有一个如下所示的文件: C:\projects\transitCalculator\trunk\transitCalculator.php 我的文件通常由以下机构提供: C:\xampp\htdocs\ (因为这是默认配置)有没有办法让Apache识别并提供我的TransitCalculator.php文件,而不将其移动到htdocs下?我希望Apache能够提供/访问projects目录的全部内容,并且我不希望将projects目录移动
htdocs
目录之外提供文件
例如,假设我有一个如下所示的文件:
C:\projects\transitCalculator\trunk\transitCalculator.php
我的文件通常由以下机构提供:
C:\xampp\htdocs\
(因为这是默认配置)有没有办法让Apache识别并提供我的TransitCalculator.php
文件,而不将其移动到htdocs
下?我希望Apache能够提供/访问projects目录的全部内容,并且我不希望将projects目录移动到htdocs
下
编辑:编辑以将Apache添加到问题标题中,使Q/A更“可搜索”您可以将Apache设置为在任何地方提供页面,但它通常以更安全的形式分发 编辑apache文件(http.conf是更常见的名称之一)将允许您设置任何文件夹,使其显示在webroot中 编辑: 别名myapp c:\myapp\
我已经编辑了我的答案,在http.conf文件中包含了创建别名的格式,这有点像windows中的快捷方式或un*x下的符号链接,其中Apache“假装”文件夹在webroot中。从长远来看,这可能对您更有用。您可以通过编辑XAMPP\apache\conf\httpd.conf中的DocumentRoot设置来重新定位它 目前应该是: C:/xampp/htdocs 将其更改为: C:/projects/transitCalculator/trunk 好的,per’s和’s的答案看起来有三种方法可以做到这一点:
NameVirtualHost*:80
)http.conf
文件的~200行开始,复制
和
(~232行)之间的所有内容,并将其粘贴到下面的C:/xampp/htdocs
中,替换为所需的目录(在本例中为C:/Projects
),以便为服务器提供新目录的正确权限
部分(~300行)并添加
(或与您的愿望相关的任何内容)位于模块标记内的别名
注释块下方DocumentRoot“C:/xampp/htdocs”
更改为#DocumentRoot“C:/Projects”
(或任何您想要的)C:/Projects
)注意事项:
- 必须使用正斜杠“/”而不是反斜杠“\”
- 不要在末尾包含尾随的“/”
- 重新启动服务器
<img src="/images/logo.png" alt="My Logo" />
而在使用别名或子目录的环境中,您需要准确跟踪“images”目录相对于当前文件的位置。允许Apache 2在htdocs之外托管网站的解决方案: 在httpd.conf中的“DocumentRoot”指令下面,您应该看到一个目录块。将此目录块替换为:
<Directory />
Options FollowSymLinks
AllowOverride All
Allow from all
</Directory>
选项如下符号链接
允许超越所有
通融
记住不要在真实环境中使用此配置如果您试图让XAMPP将网络驱动器用作文档根目录,则必须使用httpd.conf中的UNC路径。XAMPP将无法识别映射的网络驱动器 例如,以下内容不起作用, DocumentRoot“X:/webroot” 但这会,,
DocumentRoot“//192.168.10.100/webroot”(注意正斜杠,而不是反斜杠)不要忘记在要求DocumentRoot的两行中编辑它。如果只更改最上面的一个,将出现读取访问错误等。这也适用于XAMP mac?现在通过哪个URL可以访问索引页?在步骤(3)中编辑C:\Windows\System32\drivers\etc\hosts。首先以管理员身份运行编辑器(记事本、记事本++或任何编辑器)的最佳实践。因此,您可以直接保存到C:\Windows\System32\drivers\etc\文件夹。如果出现403个错误,请参阅使用Order allow,deny allow from all on Win7返回403个错误,因为此选项已弃用。使用需要所有授权。仅供参考,我似乎没有必要执行此步骤:使用
Order allow取消注释行19(NameVirtualHost*:80),deny allow from all
对我不起作用,但Require all approved
有效。我的电脑上有几个网络驱动器,它们已映射到驱动器号(例如X:\myfolder
)。当我使用此方法时,会收到“禁止访问”警告。这是否意味着Apache用户没有对驱动器的读取权限?在Dire下
Alias /transitCalculator "C:/Projects/transitCalculator/trunk"
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>
# localhost entries
127.0.0.1 localhost transitcalculator.localhost
<img src="/images/logo.png" alt="My Logo" />
<Directory />
Options FollowSymLinks
AllowOverride All
Allow from all
</Directory>