警告的: require_once(/var/www/html/test_lms/include/mysql.processing.php): 无法打开流:没有这样的文件或目录 /var/www/html/test_lms/include/IMEXporter.class.php 在线 513
致命错误:require_once():无法打开所需内容 '/var/www/html/test_lms/include/mysql.processing.php' (include_path ='。:/ usr / local / lib / php')in /var/www/html/test_lms/include/IMEXporter.class.php 在线 513
来自IMEXporter.class.php
LINE 513的PHP正在抛出错误
require_once dirname(__FILE__) . "/mysql.processing.php";
文件在那里。
该文件是chmod 777.
这两个文件都归同一个用户和组所有
为什么php会这样对我?
问题可能是 mysql.processing.php
本身被破坏了,即使php找到了它拒绝检索它的文件,而是抛出Derp! cant find file. Derp.
。有点愚蠢,误导我这样,但它的可能性。我现在正在检查我的代码。
不,我试图删除mysql.processing.php
的整个脚本并写了
echo "Hello you impudent php";
它仍然无法找到该文件。所以它不是一个文件破坏的问题。我还修复了文件大小写问题。从大写P到小写,它仍然不会去。我试图包含一个名为test.php的文件,它不会找到那个..
答案 0 :(得分:2)
您遇到区分大小写问题。您最有可能从windows environment
移至Linux
如果您的文件是mysql.processing.PHP
require_once dirname(__FILE__) . "/mysql.processing.php
可以在Windows + apache服务器上运行但在Linux + apace上失败
使用以下内容获取实际文件名
var_dump(scandir(__DIR__));
请运行这个简单的测试
error_reporting(E_ALL);
$name = "mysql.processing.php";
$file = __DIR__ . "/mysql.processing.php";
$dir = scandir(__DIR__);
$func = array("file_exists","is_file","is_readable");
echo "<pre>";
foreach ( $func as $fun ) {
if (! $fun($file)) {
echo $fun, " - Failed ", PHP_EOL;
} else {
echo $fun, " - Failed ", PHP_EOL;
}
}
if (! in_array(basename($file), $dir)) {
echo basename($file), " in_array Error", PHP_EOL;
} else {
echo basename($file), " in_array OK", PHP_EOL;
}
if (! in_array($name, $dir)) {
echo $name, " in_array Failed", PHP_EOL;
} else {
echo $name, " in_array Ok", PHP_EOL;
}
if ($name !== basename($file)) {
echo $name, " basename Failed", PHP_EOL;
} else {
echo $name, " basename OK", PHP_EOL;
}
答案 1 :(得分:1)
好吧,在错误消息中,文件名的大小写与您发布的require行中的大小写不一样...你确定它不是拼写错误吗?
答案 2 :(得分:1)
好的,这是问题所在。还记得当我提到我的mysql.processing.php
文件可能被破坏时吗?那是问题的一半。显然,php require
会返回错误failed to open stream: No such file or directory.. etc
,如果它:
1)找不到文件。
2)它找到了文件,但无法打开它。
错误消息具有误导性,导致您认为这是一个路径问题。有时它是,但像我的情况,它只是返回文件的语法问题。现在是下半场。我对mysql.processing.php
上的所有语法错误进行了更正,但它仍然无效。所以我只是重新启动了我的服务器,现在它可以工作了。
问题的后半部分是php有缓存php文件的恶劣趋势。通常你可以开始编辑PHP脚本,修复解决方案等等,而不是取得任何进展,因为PHP不会立即生效你的更改。这会导致你从一个解决方案到另一个解决方案绊脚石,不断改变你的脚本,它会让你感觉自己处于迷宫中。
有一些方法可以阻止php缓存特定文件。但问题是php本身,误导性错误报告,以及两个缓存问题并排除解决方案的问题。
答案 3 :(得分:0)
问题可能是你的php不在同一个文件夹中,你不能在URL或其他文件夹中包含.php。如果它位于同一路径或路径中的子文件夹中,则可以包含php。对不起我的英语,但我想你会明白我在说什么。