我们目前在使用NGINX安装TYPO3 9.5时遇到了一些问题。
在TYPO3 9.5中,一些方法现已弃用,一些类已移至核心。但是,一些扩展仍然会实例化这些类并且它应该可以工作,因为存在某种映射,其中旧类只是扩展新类。
在我们的例子中,当我们使用Apache运行我们的安装时,这样的事情会起作用。但是,当我们使用NGINX运行它时,会引发PHP阻塞错误。我们只是得到类似的东西
Error : Class OLD_CLASSNAME not found.
我们的目标环境使用Debian GNU/Linux 9 - PHP7.3,但我们也尝试使用Docker和来自webdevops ( https://github.com/webdevops/TYPO3-docker-boilerplate ) 的样板进行简单安装。
我们比较了Apacahe和NGINX之间的php.ini文件,但我们没有找到问题的根源是哪个参数。在某些情况下,我们使用TYPO3 XClasses进行了变通,但在某些情况下它根本不起作用。
我们尝试添加一个类似typo3.conf 的文件并尝试使用它但没有成功。使用最低级别的错误或禁用错误显示也不起作用。
我们也尝试将我们的安装升级到TYPO3 10.x,但问题仍然存在。
有没有人遇到过这种行为?对此问题的任何帮助将不胜感激。
提前谢谢了。
此致,
解决方案和更正
我们刚刚重新分析了我们的问题(在睡了一夜好觉之后),我们意识到我们错了,我们的问题不可能与Apache或NGINX相关。我们的解释是错误的。因此,我们重新检查了我们在各种环境中部署的包,并发现了自动加载程序文件中的差异。事实上, vendor/composer/autoload_files.php和vendor/composer/autoload_static.php中缺少以下行:
'...' => __DIR__ . '/..' . '/helhum/console-autoload-include.php',
'...' => __DIR__ . '/..' . '/typo3/alias-loader-include.php',
'...' => __DIR__ . '/..' . '/typo3/autoload-include.php',
因此,问题与自动加载生成有关,与环境无关。
眼眸繁星