当前位置: 首页 > 知识库问答 >
问题:

$\u服务器['DOCUMENT\u ROOT']未返回预期的目录位置

轩辕瑞
2023-03-14

我访问了我网站的子文件夹,并出现以下错误:

PHP Warning:  include_once(): Failed opening '/var/www/html//include/version.inc' for inclusion (include_path='.:/usr/share/pear:/usr/share/php') in /srv/sparrow/php/include/branches.inc on line 3

$\u服务器['DOCUMENT\u ROOT']似乎返回了一个错误的目录,如下所示:

/var/www/html/

如果我访问www.my.com。website/php,这应该是$\u服务器['DOCUMENT\u ROOT']应该返回的预期目录:

/var/www/html/php/

这些是我的虚拟主机配置:

NameVirtualHost *:80

<VirtualHost *:80>
   ServerName   www.mywebsite.com
   DocumentRoot /var/www/html/

   <Directory /var/www/html/>
     Options -Indexes -MultiViews
   </Directory>
</VirtualHost> 

<VirtualHost *:80>
  ServerName   www.mywebsite.com/ph
  # Webroot of PHP site
  DocumentRoot /var/www/html/php/

  <Directory /var/www/html/php/>
    Options -Indexes -MultiViews
  </Directory>
</VirtualHost> 

如何配置virtualhost配置,以便访问www.my。website/php它应该返回DocumentRoot,其值为/var/www/html/php/?

谢谢大家!

共有1个答案

戚令秋
2023-03-14

端口80上有两个VHOST。第一个赢了。您应该通过IP、服务器名或端口来区分它们。如果两者都在同一个端口上运行,那么如果您使用的是Apache2.2(2.4不需要),您还需要NameVirtualHost 80

我很确定,如果您交换vhost,您将获得$\u服务器['DOCUMENT\u ROOT']

但是:如果你有两个vhost,让它们可以区分!

使现代化

在上层虚拟主机中进行额外的重写(需要激活mod_rewrite),因此您可以删除第二个虚拟主机:

RewriteEngine On
RewriteRule ^/ph/(.*)$ http://www.mywebsite.com/ph/$1 [R=301,L]

或者[P,L]如果您想隐藏您正在重写,但是[P]也需要激活mod_proxy

 类似资料:
  • 我正在使用JUnit和Mockito库来测试我的应用程序。问题是,当我在代码下面执行时,值在运行时没有返回空列表,并且测试失败。理想情况下,当get执行时,它应该返回空列表 我热切期待着支持。有没有人能帮我一下,如何通过这个测试用例???。如何通过Mockito使第8行的控件通过测试用例??? 请假设,下面两个类没有真实的代码,我们只有二进制文件作为JAR文件,我们不能修改下面的代码....我附上

  • 首先,我在google和statckoverflow中尝试了很多,但还是失败了。我希望能帮助我。谢谢你。 当从我的WebClient调用WCF服务时,我收到以下错误。 注意2:服务器和Web客户端托管在IIS中。

  • 我正在学习AOP Spring并尝试一些示例。关于@AfterBack ning,我所理解的是,只有当目标成功返回并且与切入点匹配时,才会调用该方法。然而,在我的例子中,如下所示,我有一个切入点,它定义了所有只返回字符串的方法,但它调用了所有空方法以及返回字符串的方法。 我的建议: 请在下面找到我的Impl课程: 请在下面找到我的MainApp类: 我原本希望只调用getCustomer(),因为

  • 为了澄清所使用的输入是100,用于投资金额,利率为5%(在该程序中,取5/100,然后/12=0.00417),在这种情况下,投资的持续时间为6个月。因此,在任何利息累积之前的第0个月,没有利息,所以这只是投资的投入金额(100)。然后,在第一个月,它现在运行正常((100*i)*(i interest());或在或情况下((100*1)*(10.00417))=100.417 但当我到了第二个月

  • 在Azure服务总线主题中,我有一个包含1000多条消息的订阅。这些消息由worker角色使用。出于监视目的,我想查看前10条消息,看看哪种消息正在等待处理。为了完成该任务,我创建了一个subscriptionclient,并调用方法PeekBatchAsync。奇怪的行为是,有时PeekBatchAsync返回的消息少于10条(即2条或4条)。 更多信息以澄清上下文: 我确信订阅包含超过1000

  • 问题内容: 我正在使用Newtonsoft的Json.Net从以下json中选择节点: 以下C#代码段 产量: 现在,这很酷,我想做的是按客户端代码过滤,我认为 可以,但是我显然对语法不够了解。这将返回一个空列表: 并且单个令牌选择器返回null: 我在https://jsonpath.curiousconcept.com/上尝试了几种不同的配置,看来我的查询语法确实坏了。 使用Flow Comm