require_once() [function.require]: 无法打开所需的 '/vars.inc' (include_path='.;C:\php5\pear')

Posted

技术标签:

【中文标题】require_once() [function.require]: 无法打开所需的 \'/vars.inc\' (include_path=\'.;C:\\php5\\pear\')【英文标题】:require_once() [function.require]: Failed opening required '/vars.inc' (include_path='.;C:\php5\pear')require_once() [function.require]: 无法打开所需的 '/vars.inc' (include_path='.;C:\php5\pear') 【发布时间】:2011-04-21 14:23:18 【问题描述】:

我在本地机器上设置了几个站点 - customerappglobal、customerapp 和 naturaleigh。我只有一个 - customerappglobal - 目前正在工作,因为那是我唯一需要工作的。我已将以下代码添加到我的 httpd.conf 文件中:

<VirtualHost *:427>
 # The name to respond to
 ServerName customerappglobal
 # Folder where the files live
 DocumentRoot "C:/HeritageApps/CustomerApp_v2"
 # A few helpful settings...
 <Directory "C:/HeritageApps/CustomerApp_v2">
  allow from all
  order allow,deny
  # Enables .htaccess files for this site
  AllowOverride All
 </Directory>
 # Apache will look for these two files, in this order, if no file is specified in the URL
 DirectoryIndex index.html index.php
</VirtualHost>


<Directory "c:/HeritageApps">
    #
    # 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

    #
    # 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.
    #

#   onlineoffline tag - don't remove
#Allow,Deny
    Order Deny,Allow
    Allow from all

</Directory>

这似乎足以让它工作(哦,在 HOSTS 文件中添加了一行..)。

无论如何,我正在使用 wampserver(最新的)和 PHP 5、Apache 和 mysql。除非我在尝试加载的文件中使用 require_once 的相对路径,否则该网站加载正常。

我收到以下错误:

警告:require_once(/vars.inc) [function.require-once]:未能 打开流:没有这样的文件或目录 在 C:\HeritageApps\CustomerApp_v2\Customers\Customers.php 在第 2 行

致命错误:require_once() [function.require]:打开失败 必需的'/vars.inc' (include_path='.;C:\php5\pear') 在 C:\HeritageApps\CustomerApp_v2\Customers\Customers.php 在第 2 行

据我所知,包含路径 (C:\php5\pear) 不存在,我无法在 php.ini 文件或 httpd.conf 文件中找到该路径的 any 痕迹.我已经读过路径不存在是它抛出错误的原因,但我还没有找到任何解决方案。在过去的一两天里一直在发生这种情况,如果某些事情长时间不起作用,我往往会遭受受伤和愤怒的诅咒——所以请有人帮我解决这个问题吗?我真的不知道哪里出了问题或哪里出了问题......我已经搜索了我能想到的所有地方。我只需要能够单独更改所有应用程序的包含路径(或者全局更改它会是一个很好的开始!!)。

【问题讨论】:

【参考方案1】:

问题在于您的包含:Warning: require_once(/vars.inc),其中/ 与文件系统根目录相关。你真正想要的是require_once('./vars.inc');require_once('vars.inc');

【讨论】:

我试过了,它也不起作用。基本上我想要的是能够在站点的根目录中拥有“vars.php”,然后在站点的任何级别都有文件,其中包括“/vars.php”。此外,我还有一个 pagesections.php,其中包含页眉、页脚、menu 等功能。该菜单将包含使用相对 URL 的链接——但目前这些链接不起作用,因为我目前使用的是“a/path/to/navigate/to”。我认为这些被归类为绝对路径。显然,这些可能在一个级别上工作,但不能在任何其他级别上工作(除非它们具有相同的文件夹结构)。 顺便说一句,我以前在 .net 和 PHP 中使用过以“/”开头的相对 URL - 我知道如何使用它们,只是我以前从未建立过这样的网站......我不知道我需要改变什么以及在哪里...... 好吧,我设法让它工作了——我使用了 require_once $_SERVER["DOCUMENT_ROOT"]."/vars.inc";反而。我还注意到链接中的相对 URL 毕竟是有效的 - 我不认为它们是......使用 DocumentRoot 还是允许 url 包含并使用服务器名称和端口更好?

以上是关于require_once() [function.require]: 无法打开所需的 '/vars.inc' (include_path='.;C:\php5\pear')的主要内容,如果未能解决你的问题,请参考以下文章

致命错误:require_once() [function.require]:无法打开所需的 global.php

require_once() [function.require]: 无法打开所需的 '/vars.inc' (include_path='.;C:\php5\pear')

警告:require_once(Zend / Application.php)[function.require-once]:无法打开流:没有这样的文件或目录

require_once localhost wordpress 函数错误

使用 require_once 的路径错误

include() 和 require_once() 问题