TYPO3 CMS版本9由于缺少词法分析器而无法安装

时间:2018-07-19 11:56:14

标签: php composer-php typo3 ddev typo3-9.x

TYPO3安装在最后一步失败。日志中的错误消息显示:PHP Fatal error: Class 'Doctrine\Common\Lexer' not found

这是代码(实际上是该项目中存在的所有代码):

.ddev / config.yaml

APIVersion: v0.20.0
name: v9
type: typo3
docroot: public
php_version: "7.2"
router_http_port: "80"
router_https_port: "443"
xdebug_enabled: false
additional_hostnames: []
provider: default

composer.json

{
  "name": "vendor/v9",
  "require": {
    "typo3/minimal": "~9.3"
  }
}

public / typo3conf / AdditionalConfiguration.php

<?php
/** #ddev-generated: Automatically generated TYPO3 AdditionalConfiguration.php file.
 ddev manages this file and may delete or overwrite the file unless this comment is removed.
 */

$GLOBALS['TYPO3_CONF_VARS']['SYS']['trustedHostsPattern'] = '.*';

$GLOBALS['TYPO3_CONF_VARS']['DB']['Connections']['Default'] = array_merge($GLOBALS['TYPO3_CONF_VARS']['DB']['Connections']['Default'], [
                'dbname' => 'db',
                'host' => 'db',
                'password' => 'db',
                'port' => '3306',
                'user' => 'db',
]);

ddev start && ddev ssh然后composer install并在准备好时用Y确认,我打开http://v9.ddev.local/并重定向到http://v9.ddev.local/typo3/install.php

现在我必须创建FIRST_INSTALL。做完了“未检测到问题,请继续安装”。步骤2和3被跳过,因为AdditionalConfiguration.php(由ddev生成)已经知道数据库连接。设置用户名和密码以及站点名称。 “继续”

现在我得到一个蓝色的进度条,什么也没发生。输入ddev logs会显示此错误:

==> /var/log/nginx/error.log <==
2018/07/19 11:45:22 [error] 223#223: *440 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Class 'Doctrine\Common\Lexer' not found in /var/www/html/public/typo3/sysext/core/Classes/Database/Schema/Parser/Lexer.php on line 22" while reading response header from upstream, client: REMOVED_IP_ADDRESS, server: _, request: "POST /typo3/install.php HTTP/1.1", upstream: "fastcgi://unix:/run/php-fpm.sock:", host: "v9.ddev.local", referrer: "http://v9.ddev.local/typo3/install.php"

==> /var/log/php-fpm.log <==
[19-Jul-2018 11:45:22] WARNING: [pool www] child 232 said into stderr: "NOTICE: PHP message: PHP Fatal error:  Class 'Doctrine\Common\Lexer' not found in /var/www/html/public/typo3/sysext/core/Classes/Database/Schema/Parser/Lexer.php on line 22"

3 个答案:

答案 0 :(得分:3)

这是新9版本中的一个已知错误: https://forge.typo3.org/issues/85552

如问题中所述,如果在自己的composer.json中包含lexer,则应该能够修复它: 作曲家需要教义/词法分析器:^ 1.0

答案 1 :(得分:0)

听起来像自动加载问题。您尝试过ddev exec composer dump -d /var/www/html吗?

答案 2 :(得分:0)

“找不到lexer类”问题已在最新的master中得到解决,但是我不确定如何直接告诉ddev使用它,或者如何手动应用补丁。或者,您可能会选择较旧的理论版本(核心主composer.lock中应该使用该版本)。