因此,相同的代码在我的 Ubuntu 服务器上可以运行,但是当我将其上传到运行 CentOS 的专用托管服务器时,它似乎添加了一个额外的前缀,.:/usr/share/pear:/usr/share/php:
我尝试将其设置includepath
为不同的内容,但就是不起作用。该文件位于名为 language 的目录中,与包含它的文件位于同一文件夹中,我正在使用:
include dirname(__FILE__).DIRECTORY_SEPARATOR."language".DIRECTORY_SEPARATOR."storage.inc";
include dirname(__FILE__)."/language/language.php";
include "language/language.php";
以及许多其他组合,但我无法找到该文件。我一直收到错误消息:
Fatal error: require_once() [function.require]: Failed opening required '/home/neo/public_html/migration/include/class/core/storage.inc' (include_path='.:/usr/share/pear:/usr/share/php:/home/neo/public_html/migration') in /home/neo/public_html/migration/include/class/core/class_lang.inc on line 153
答案1
每当我在 CentOS 上遇到奇怪的问题时,我首先要检查的是 selinux。这是一个默认启用的安全系统,它可以阻止程序访问任何未获得明确权限的文件。
您可以查看
/var/log/secure or maybe /var/log/audit/audit.log
拒绝消息,或者您可以通过暂时关闭 selinux 进行测试
echo 0 >/selinux/enforce
然后测试 - 但稍后再将其重新打开
echo 1 >/selinux/enforce
并研究如何调整它以使其正常工作。