生产服务器上使用 use 命名空间时,PHP 找不到类

3
我在生产环境中遇到了以下错误,但在开发环境中没有。生产环境使用的是PHP 5.5.17版本,我的开发环境使用的是PHP 5.5.30版本,因此我认为这不是问题所在。我的开发环境是Ubuntu,而我想生产环境是Windows。我对PHP并不是很熟悉,希望得到帮助。
提示错误为:PHP致命错误: 找不到“Handlebars\\Handlebars”类。
require get_template_directory() .'/handlebars/Autoloader.php';
Handlebars\Autoloader::register();
use Handlebars\Handlebars;
$handlebars = new Handlebars(handlebars_settings());

您似乎混淆了大小写。 - Burki
@Burki,第一行是小写的文件路径,其余是大写的类名。 - Stefan
Windows 是大小写敏感的。你可以尝试将目录更改为 Handlebars,看看是否有效。不过这只是一个猜测。 - Burki
@Burki Windows是一个不区分大小写的环境,PHP在函数名称方面也是如此。 - Brian Leishman
@BrianLeishman 我改正了。通常情况下是不区分大小写的。但是,正如这个问题的第二个答案所建议的那样,你仍然可能会遇到麻烦。 - Burki
似乎不是大小写问题,我刚刚注意到路径非常奇怪,你有什么想法吗?特别是这里的 /http.apache/。以下是完整路径,我稍微编辑了一下以隐藏客户端 - /http.apache/stage.mysite.com/html/wp-content/themes/theme_name/index.php。 - Stefan
1个回答

0
这个问题是文件夹路径的大小写导致的。由于某种原因,OS X和CentOS 7可以将PHP中的路径/Handlebars/转换为小写,但Windows Server 2003无法做到。

那个原因是Windows文件系统不区分大小写。这并不是什么神秘的事情;-) - Álvaro González
这有点神秘,因为Windows对大小写敏感。 - Stefan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接