Main > Abyss | Akeneo PIM > Akeneo 5.0 CE: Ошибки при установке

Akeneo 5.0 CE: Ошибки при установке

21.05.2021 0 comments » Views: 184

Сегодня для собственных экспериментов устанавливал Akeneo 5.0 CE версию и во время установки столкнулся с ошибками, о решении которых и будет данный пост..

Небольшое вступление

Я решил установить систему не из докер образа, а в ручном режиме.

Для этого я использовал PHP 7.4, Nginx, Elasticsearch и MariaDB. Последняя заявлена как не поддерживаемая, но у меня она уже была установлена и менять ее я не собирался.

Для установки идем вот сюда: https://www.akeneo.com/download/

Заполняем форму рандомными данными и получаем ссылку на скачиваем архива.

Архив, разархивируем в папку и настраиваем php-fpm и nginx.

Конфиг php-fpm у меня был стандартный, конфиг nginx-а минимальный

Далее, заходим в папку с кодом и выполняем следующее

Далее, все должно было начать работать. Но не заработало, на фронте была ошибка 500 и сообщение про старт сессий после отправки сообщений

Ошибки можно смотреть в логе, вот тут: var/logs/prod.log


Ошибки совместимости

Ошибки совместимости, я увидел когда пытался запустить установку вот так

Результат


Ошибка: SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed

Полный текст ошибки

[2021-07-21 15:29:43] request.CRITICAL: Uncaught PHP Exception PDOException: "SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution" at vendor/symfony/http-foundation/Session/Storage/Handler/PdoSessionHandler.php line 438 {"exception":"[object] (PDOException(code: 2002): SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution at vendor/symfony/http-foundation/Session/Storage/Handler/PdoSessionHandler.php:438, PDOException(code: 0): PDO::__construct(): php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution at vendor/symfony/http-foundation/Session/Storage/Handler/PdoSessionHandler.php:438)"} []

Это ошибка о том, что не настроен коннект к базе

Добавляем нужные настройки базы в файл "/.env", в переменные APP_DATABASE_*. Заодно там же меняем хост эластика в APP_INDEX_HOSTS на localhost и прописываем локальный хост в переменную AKENEO_PIM_URL

После этого проблема с базой исчезает


Ошибка: SQLSTATE[42S02]: Base table or view not found

ПОлный текст ошибки

Эта ошибка возникает, т.к. база пустая и не содержит таблиц. Эти таблицы нужно создать вот так

В конце правда получим ошибку на этапе загрузки фикстур

Но, таблицы создаются, поэтому пока просто игнорируем её и идем дальше


Ошибка: Старница логина загрузилась, но не загружаются стили

Возникает она т.к. нет файла стилей ~/public/css/pim.css

Я попробовал исправить это запустив yarn

Но получил ошибку: Error: Cannot find module 'less'

yarn run v1.22.5
$ node $npm_package_config_styles
internal/modules/cjs/loader.js:638
throw err;
^
Error: Cannot find module 'less'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
at Function.Module._load (internal/modules/cjs/loader.js:562:25)
at Module.require (internal/modules/cjs/loader.js:692:17)
at require (internal/modules/cjs/helpers.js:25:18)
at Object. (/vendor/akeneo/pim-community-dev/frontend/build/compile-less.js:6:15)
at Module._compile (internal/modules/cjs/loader.js:778:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
at Function.Module._load (internal/modules/cjs/loader.js:585:3)
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

Чтобы ее исправить я установил less и less-loader

После повторного запуска, предыдущие ошибки ушли, но появилась новая: Error compiling less: Error evaluating function percentage: argument must be a number

yarn run v1.22.5
$ node $npm_package_config_styles

Starting LESS compilation                                                                                                                                                                                                                                                       
                                                                                                                                                                                                                                                                               
‣ vendor/akeneo/pim-community-dev/src/Akeneo/Pim/Structure/Bundle/Resources/public/less/index.less
‣ vendor/akeneo/pim-community-dev/src/Oro/Bundle/PimDataGridBundle/Resources/public/less/index.less
‣ vendor/akeneo/pim-community-dev/src/Akeneo/Platform/Bundle/UIBundle/Resources/public/less/index.less
‣ vendor/akeneo/pim-community-dev/src/Akeneo/Connectivity/Connection/back/Infrastructure/Symfony/Resources/public/less/index.less
‣ vendor/akeneo/pim-community-dev/src/Akeneo/Platform/Bundle/CommunicationChannelBundle/back/Infrastructure/Framework/Symfony/Resources/public/less/index.less
‣ vendor/akeneo/pim-community-dev/src/Akeneo/Pim/Automation/DataQualityInsights/back/Infrastructure/Symfony/Resources/public/less/index.less


Error compiling less: Error evaluating function percentage: argument must be a number
                                                                                                                                                                                                                                                                               
public/bundles/pimui/lib/bootstrap/less/bootstrap_variables.less:278:26                                                                                                                                                                                                        
>// -------------------------
>@fluidGridColumnWidth:    percentage(@gridColumnWidth/@gridRowWidth);                                                                                                                                                                                                          
>@fluidGridGutterWidth:    percentage(@gridGutterWidth/@gridRowWidth);                                                                                                                                                                                                          
                                                                                                                                                                                                                                                                               
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

Для ее исправления, я открыл файл public/bundles/pimui/lib/bootstrap/less/bootstrap_variables.less в редакторе, нашел указанные строки и обернул их в еще одни скобки, т.е. стало вот так

Это решило проблему в этом месте, но появилась новая: Error compiling less: Operation on an invalid type

yarn run v1.22.5
$ node $npm_package_config_styles

Starting LESS compilation                                                                                                                                                                                                                                                       
                                                                                                                                                                                                                                                                               
‣ vendor/akeneo/pim-community-dev/src/Akeneo/Pim/Structure/Bundle/Resources/public/less/index.less
‣ vendor/akeneo/pim-community-dev/src/Oro/Bundle/PimDataGridBundle/Resources/public/less/index.less
‣ vendor/akeneo/pim-community-dev/src/Akeneo/Platform/Bundle/UIBundle/Resources/public/less/index.less
‣ vendor/akeneo/pim-community-dev/src/Akeneo/Connectivity/Connection/back/Infrastructure/Symfony/Resources/public/less/index.less
‣ vendor/akeneo/pim-community-dev/src/Akeneo/Platform/Bundle/CommunicationChannelBundle/back/Infrastructure/Framework/Symfony/Resources/public/less/index.less
‣ vendor/akeneo/pim-community-dev/src/Akeneo/Pim/Automation/DataQualityInsights/back/Infrastructure/Symfony/Resources/public/less/index.less


Error compiling less: Operation on an invalid type
                                                                                                                                                                                                                                                                               
./public/bundles/pimui/less/components/Column.less:179:4                                                                                                                                                                                                                       
>    margin-top: 10px;
>    left: @AknMainMenuWidth + (@littleWidth - @AknDefaultButtonSize) / 2;                                                                                                                                                                                                      
>    opacity: 0;                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                               
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

По той же схеме, просто обернул в скобки, получилось так

После этого CSS файл наконец-то успешно сгенерировался

После этого все начало выглядеть правильно


Ошибка: Не загруженные фикстуры

Выше, я уже писал что фикстуры (подготовленные данные) не были загружены. И теперь настало время к ним вернуться, т.к. форма логина работает, но учетка админа не создана.

Ошибка у нас была вот такая

Немного погуглив, я наткнулся на информацию что их переместили

  • Были тут:
    • src/Akeneo/Platform/Bundle/InstallerBundle/Resources/fixtures/minimal/*
  • Теперь тут:
    • vendor/akeneo/pim-community-dev/src/Akeneo/Platform/Bundle/InstallerBundle/Resources/fixtures/minimal/*

Пробуем, просто создать символическую ссылку, чтобы не заморачиваться. Однако, т.к. нам нужны тестовые данные копируем не "minimal" фикстуры, а те, что называются "icecat_demo_dev" и проверяем

Запускаем вновь

фикстуры загрузились, но вылезает новая ошибка: Impossible to get the latest migration Composer detected issues in your platform

На этом этапе может появиться еще одна ошибка: SQLSTATE[42000]: Syntax error or access violation: 1305 FUNCTION akeneo.JSON_ARRAYAGG does not exist. Она говорит о том, что в ваша версия MySQL/Mariadb устаревшая. Чтобы ее убрать, необходимо обновиться на более новую. Для MariaDB это версия 10.5.0, детали по этим ссылкам

  • https://mariadb.com/kb/en/json_arrayagg/
  • https://mariadb.com/docs/deploy/upgrade-community-server-cs105-ubuntu18/

Ошибка: Impossible to get the latest migration Composer detected issues in your platform

Полный текст ошибки

Delete jobs for fixtures.
Versioning is already up to date.
In DatabaseCommand.php line 360:
[RuntimeException]
Impossible to get the latest migration Composer detected issues in your platform:
Your Composer dependencies require a PHP version ">= 7.4.1". You are running 7.2.34-22+ubuntu20.04.1+deb.sury.org+1.
PHP Fatal error: Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 7.4.1". You are running 7.2.34-22+ubuntu20.04.1+deb.sury.org
+1. in vendor/composer/platform_check.php on line 24
Exception trace:
at vendor/akeneo/pim-community-dev/src/Akeneo/Platform/Bundle/InstallerBundle/Command/DatabaseCommand.php:360
Akeneo\Platform\Bundle\InstallerBundle\Command\DatabaseCommand->getLatestMigration() at vendor/akeneo/pim-community-dev/src/Akeneo/Platform/Bundle/InstallerBundle/Command/DatabaseCommand.php:333
Akeneo\Platform\Bundle\InstallerBundle\Command\DatabaseCommand->setLatestKnownMigration() at vendor/akeneo/pim-community-dev/src/Akeneo/Platform/Bundle/InstallerBundle/Command/DatabaseCommand.php:206
Akeneo\Platform\Bundle\InstallerBundle\Command\DatabaseCommand->execute() at vendor/symfony/console/Command/Command.php:255
Symfony\Component\Console\Command\Command->run() at vendor/symfony/console/Application.php:1027
Symfony\Component\Console\Application->doRunCommand() at vendor/symfony/framework-bundle/Console/Application.php:97
Symfony\Bundle\FrameworkBundle\Console\Application->doRunCommand() at vendor/symfony/console/Application.php:273
Symfony\Component\Console\Application->doRun() at vendor/symfony/framework-bundle/Console/Application.php:83
Symfony\Bundle\FrameworkBundle\Console\Application->doRun() at vendor/symfony/console/Application.php:149
Symfony\Component\Console\Application->run() at bin/console:36

Появляется, т.к. у меня стоит по-умолчанию в системе php7.2 и хотя я запускаю консольную команду от php7.4 внутренние процессы не могут этого понять и тригерят php установленный по-умолчанию

Чтобы исправить это на время инсталяции я поменял дефолтную версию php

На этот раз все прошло успешно. Т.к. мне нужен PHP 7.2 для других дел, то я вернулся тем же способом к этой версии.


Заключение

Ручная установка Akeneo 5 CE оказалась довольно не простой штукой, особенно когда у тебя несколько версий PHP и не совсем подходящая версия базы. Поэтому, думаю, намнеого проще использовать докер, где не придется бороться с зависимостями версий.

Ах да, данные для авторизации admin/admin, другие учетки можно посмотреть в фикстуре users.csv

Author: | Rating: 4/5 | Tags:

Leave a Reply

Your email address will not be published. Required fields are marked *

Allowed HTML-tags: <a>, <code>, <i>, <em>, <strong>, <b>, <u>, <strike>