PHP“require_once”表示它无法在目录中找到文件

时间:2010-01-22 15:56:20

标签: php

我正在调试一些由外包公司编写的PHP代码(我根本不是一个PHP人员但知道基础知识;我们有一个PHP开发人员离岸团队在这个项目上为我们工作)但是没有用;该代码应该由cron作业每30分钟调用一次,但它不会被触发。我尝试通过命令行运行PHP脚本来测试它是否正常工作,但它给了我以下(匿名)错误:

PHP Fatal error: require_once(): Failed opening required '/myapp/_lib/_classes/MySql.php' (include_path='.:/usr/share/pear:/usr/share/php') in /var/www/html/myapp/_lib/_base/common.inc.php on line 6

但是,文件/var/www/html/myapp/_lib/_classes/MySql.php存在于正确的目录下。我错过了一些简单的东西,我敢肯定,但就像我说我知道除了PHP的基本知识之外什么都没有,我真的需要启动并运行这个服务。

编辑:代码使用的__autoload()函数包含/_lib/_classes

中的所有类

4 个答案:

答案 0 :(得分:3)

如果您使用斜杠启动文件名,则表示它是绝对路径。试着改为:

require_once('/var/www/html/myapp/_lib/_classes/MySql.php');

答案 1 :(得分:0)

区分大小写可能吗?我之前遇到过这个问题。

答案 2 :(得分:0)

我猜这是一个权限问题 - 请确保您的帐户(用于测试目的)和任何帐户cron将运行您的脚本(很可能是您的,但可能是另一个)对文件具有读取权限

此外:包含的路径显示为/myapp/_lib/_classes/MySql.php,而它存在于/var/www/html/myapp/_lib/_classes/MySql.php中。你能改变包含引用完整路径吗?

答案 3 :(得分:0)

如上所述,套管以及另外需要访问该文件的正确权限。