簡體   English   中英

TYPO3 9.5:在 NGINX 中找不到 class

[英]TYPO3 9.5: class not found with NGINX

我們目前在使用NGINX安裝TYPO3 9.5時遇到了一些問題。

TYPO3 9.5中,一些方法現已棄用,一些類已移至核心 但是,一些擴展仍然會實例化這些類,並且它應該可以工作,因為存在某種映射,舊類只是擴展了新類。

在我們的例子中,當我們使用Apache運行我們的安裝時,這樣的事情是有效的。 但是,當我們使用NGINX運行它時,會引發PHP阻塞錯誤。 我們只是得到類似的東西

Error : Class OLD_CLASSNAME not found.

Our target environment uses Debian GNU/Linux 9 - PHP7.3 , but we also tried with a simple installation using Docker and a boilerplate from 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',

因此,問題與自動加載生成有關,與環境無關。

Apache 和 Nginx 都不執行 PHP。 但他們提供了一個環境。
可以通過 php function phpinfo()找到有關此環境的信息。
因此,為兩個系統獲取 output 看看有什么不同。
然后,您可以在嘗試配置 Nginx 時嘗試統一系統,如 Apache 安裝。

請記住,TYPO3 有一個來自Composer或手冊的autoloader類列表。
如果這混在一起,你的課程就找不到了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM