打开失败'/admin/main.inc';用于包含(包括路径=';:/usr/local/php5#u 3/lib/php';)

打开失败'/admin/main.inc';用于包含(包括路径=';:/usr/local/php5#u 3/lib/php';),php,include,include-path,Php,Include,Include Path,获取以下错误 无法打开“/admin/main.inc”以将其包含在内(include_path=”。:/usr/local/php5_3/lib/php) 包含的文件位于/admin目录中。同一个站点在我尝试的另外两个主机上运行良好,但在那个主机(godaddy)上运行不正常并抛出错误。 如果我将路径更改为。/admin/main.inc,它可以工作,但我无法负担更改脚本中包含的所有文件的费用,因此我在这里寻求帮助。如果你能告诉我如何解决这个问题,或者至少我应该说些什么来支持他们来解决这个问题

获取以下错误

无法打开“/admin/main.inc”以将其包含在内(include_path=”。:/usr/local/php5_3/lib/php)

包含的文件位于
/admin
目录中。同一个站点在我尝试的另外两个主机上运行良好,但在那个主机(godaddy)上运行不正常并抛出错误。 如果我将路径更改为
。/admin/main.inc
,它可以工作,但我无法负担更改脚本中包含的所有文件的费用,因此我在这里寻求帮助。如果你能告诉我如何解决这个问题,或者至少我应该说些什么来支持他们来解决这个问题

我在internet上找到的只是“您主机上的PHP未配置为包含当前目录”

更新:

好吧,现在我让它工作了,但是。。。情况是这样的。名为/admin index.php和forget.php(忘记密码)的文件夹。这两个文件都包含/admin/main.inc这里是index.php include

`include_once "../admin/main.inc";`
`include_once "./admin/main.inc";`
这里是forget.php include

`include_once "../admin/main.inc";`
`include_once "./admin/main.inc";`
您会看到一个文件使用../和另一个/并且它们都包含相同的文件。这里是梅因公司

`session_start();
require_once '../class/class_db.php';
require_once '../class/class_wwf.php';
require_once '../class/class_other.php';
require_once '../admin/class/class_auth.php';`
所以我们的想法是,如果保持这种方式,index.php工作正常,但是忘记了。php返回没有包含,没有这样的文件

如果我将main.inc更改为使用./index.php,则会停止工作,忘记.php工作

如果你能告诉我如何解决这个问题,或者至少我应该说些什么来支持他们来解决这个问题?我在internet上找到的只是“您主机上的PHP未配置为包含当前目录”

好的,首先解释一下你面临的问题:你的包含从
/
开始。包含的这些路径相对于当前工作目录

这通常是被请求的php文件所在的目录,但从技术上讲,这是独立的

从技术上讲,这里有工作目录的隐藏依赖项。如果不想更改包含路径,请更改工作目录

但是,在多个文件上执行搜索和替换,并替换以
\uuu DIR\uuu>开头的
/
通常更容易/,表示当前文件的目录,它独立于工作目录设置


我在internet上找到的只是“您主机上的PHP未配置为包含当前目录”

这通常意味着一些不同的东西,实际上这甚至不是你的主人的情况。在主机上,它被配置为包含当前目录:

set_include_path(get_include_path() . PATH_SEPARATOR . '../');
。。。include_path='。:/usr/local/php5_3/lib/php'


include路径中的第一个点是当前工作目录。

如果它与。。然后,您可以使用父目录动态扩展默认包含路径:

set_include_path(get_include_path() . PATH_SEPARATOR . '../');
(它必须在include语句之前,最好在脚本开头的某个地方,php必须有权读取此目录。)

编辑:似乎文件名开头的./有效地阻止了这一点,因此您可以尝试:

set_include_path(get_include_path() . PATH_SEPARATOR . dirname(__DIR__));

。。。或者从include文件名中删除所有。/如果没有这些文件名,您的应用程序应该可以运行。

我认为您找到了正确的方法。考虑与你的主机提供商联系,为什么你不能把它改为<代码>…/admin / main?Inc’< /Cord>?我投票把这个问题关为离题,因为这应该转到GoDoad客户支持。在include使之生效之前:)更新了第一篇文章。请检查一下@劳利拉坎德