首页 > 解决方案 > TYPO3 9.5:NGINX 找不到类

问题描述

我们目前在使用NGINX安装TYPO3 9.5时遇到了一些问题。

TYPO3 9.5中,现在不推荐使用某些方法,并且将某些类移至Core。但是,一些扩展仍然会实例化这些类,并且它应该可以工作,因为存在某种映射,旧类只是扩展了新类。

在我们的例子中,当我们使用Apache运行我们的安装时,这样的事情是有效的。但是,当我们使用NGINX运行它时,会引发PHP阻塞错误。我们只是得到类似的东西

Error : Class OLD_CLASSNAME not found.

我们的目标环境使用Debian GNU/Linux 9 - PHP7.3,但我们也尝试使用Docker和来自webdevops的样板进行简单安装(https://github.com/webdevops/TYPO3-docker-boilerplate)。

我们比较了ApacaheNGINX之间的php.ini文件,但我们没有发现哪个参数是我们问题的根源。在某些情况下,我们使用TYPO3 XClasses进行了解决,但在某些情况下它根本不起作用。

我们尝试添加一个类似typo3.conf的文件并尝试使用它,但没有成功。使用最低级别的错误或禁用错误显示也不起作用。

我们还尝试将我们的安装升级到TYPO3 10.x,但问题仍然存在。

有没有人遇到过这样的行为?对此问题的任何帮助将不胜感激。

提前谢谢了。

最好的祝福,

解决方案和更正

我们只是重新分析了我们的问题(经过一夜好眠),我们意识到我们错了,我们的问题与ApacheNGINX 无关。我们的解释是错误的。因此,我们重新检查了我们在各种环境中部署的包,并发现了 autloader 文件中的差异。事实上,在vendor/composer/autoload_files.phpvendor/composer/autoload_static.php中缺少以下行:

'...' => __DIR__ . '/..' . '/helhum/console-autoload-include.php',
'...' => __DIR__ . '/..' . '/typo3/alias-loader-include.php',
'...' => __DIR__ . '/..' . '/typo3/autoload-include.php',

因此,问题与自动加载生成有关,与环境无关。

标签: phpapachenginxtypo3typo3-9.x

解决方案


Apache 和 Nginx 都不执行 PHP。但他们提供了一个环境。
可以使用 php 函数找到有关此环境的信息phpinfo()
因此,获取两个系统的输出,看看有什么不同。
然后,您可以尝试在尝试像 Apache 安装一样配置 Nginx 时尝试统一系统。

请记住,TYPO3 有一个autoloaderfromComposer或 manual 的类列表。
如果这混在一起,你的课程就找不到了。


推荐阅读