TYPO3 9.5: class 找不到 NGINX

TYPO3 9.5: class not found with NGINX

我们目前在使用 NGINX.

安装 TYPO3 9.5 时遇到一些问题

TYPO3 9.5 中,一些方法现已弃用,一些 类 已移至 Core。然而,一些扩展仍然实例化那些 类 并且它应该可以工作,因为有某种映射,其中旧的 类 只是扩展新的 类.

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

这样的东西
Error : Class OLD_CLASSNAME not found.

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

的样板

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

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

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

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

非常感谢。

此致,

解决方案和更正

我们刚刚重新分析了我们的问题(在睡了一夜好觉之后),我们意识到我们错了,我们的问题不可能与 ApacheNGINX。我们的解释是错误的。因此,我们重新检查了我们在各种环境中部署的包,并发现了自动加载程序文件中的差异。事实上,vendor/composer/autoload_files.phpvendor/composer/autoload_static.php[= 中缺少以下行61=]:

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

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

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

请记住,TYPO3 有一个来自 Composer 或手册的 autoloader 的 类 列表。
如果混淆了你的 类 就找不到了。