我的网站在生产服务器上运行得很好。我已将其移至另一个Web服务器。 (VPS)。
让我用例子解释你: 目录结构:
includes/
header.php
business/
index.php
some other files...
index2.php
在我之前的版本中,我使用了
include_once(includes/header.php)
在index.php和index2.php中。它运行正常。但在我的新服务器设置中,它给出了关于路径的错误(显而易见)。
ERROR:
include_once(includes/header.php): failed to open stream: No such file or directory
因此:
Fatal error: Class 'EncryptionClass' not found
我认为我需要做一些服务器配置。但是,我不知道怎么样? 请指导我。如果您想了解更多信息,请与我们联系。
答案 0 :(得分:3)
答案 1 :(得分:2)
您可以提供包含的绝对文件系统路径:
include_once($_SERVER['DOCUMENT_ROOT'] . "/includes/header.php");
答案 2 :(得分:1)
我只是将您的includes
目录添加到include_path
。例如,在index2.php
set_include_path(implode(PATH_SEPARATOR, [
__DIR__ . '/includes', // relative to this file, index2.php
get_include_path()
]));
include_once 'header.php';
,同样在business/index.php
...
set_include_path(implode(PATH_SEPARATOR, [
__DIR__ . '/../includes', // relative to this file, business/index.php
get_include_path()
]));
include_once 'header.php';
就个人而言,我会使用PSR-0文件到类名称映射并配置自动加载器,例如
class EncryptionClass { ... }
spl_autoload_register(function($class) {
require_once __DIR__ . '/includes/' . $class . '.php';
});
$encryptionClass = new EncryptionClass();