Расширенные темы установки
Чтобы полностью автоматизировать процесс установки, параметры можно передавать в CLI как параметры, вместо ввода их интерактивно.
Для установки через Docker:
docker compose exec php vendor/bin/pimcore-install --admin-username=admin --admin-password=admin \
--mysql-username=username --mysql-password=password --mysql-database=pimcore \
--mysql-host-socket=127.0.0.1 --mysql-port=3306 \
--no-interaction
Для установки на веб‑сервере:
./vendor/bin/pimcore-install --admin-username=admin --admin-password=admin \
--mysql-username=username --mysql-password=password --mysql-database=pimcore \
--mysql-host-socket=127.0.0.1 --mysql-port=3306 \
--no-interaction
Информация
Флаг --no-interaction предотвратит любые интерактивные запросы.
Чтобы не передавать конфиденциальные данные (например, пароль БД) в виде опции командной строки, вы также можете установить каждый параметр как переменную окружения. Смотрите ./vendor/bin/pimcore-install для подробностей. Пример:
$ PIMCORE_INSTALL_MYSQL_USERNAME=username PIMCORE_INSTALL_MYSQL_PASSWORD=password ./vendor/bin/pimcore-install \
--admin-username=admin --admin-password=admin \
--mysql-database=pimcore \
--no-interaction
Установка бандлов
Обзор списков бандлов
При установке вы взаимодействуете с двумя списками бандлов: Рекомендуемые бандлы (Recommended Bundles) и Обязательные бандлы (Required Bundles).
Рекомендуемые бандлы:
- Отображаются пользователю в интерактивном режиме.
- Это те бандлы, которые пользователь может указать с помощью опции
--install-bundles=commaSeparatedBundleList.
Обязательные бандлы:
- Эти бандлы автоматически устанавливаются в интерактивном режиме, если пользователь выбирает установку бандлов.
- Они устанавливаются всегда, когда задана опция
--install-bundles.
Стандартный список рекомендуемых бандлов
По умолчанию в список Recommended Bundles входят:
- Pimcoreapplicationloggerbundle
- PimcoreCustomReportsbundle
- PimcoreGlossaryBundle
- PimcoreSeoBundle (для тем, связанных с SEO: Robots.txt, Sitemaps, Перенаправления)
- PimcoreSimpleBackendSearchBundle (для базовой функциональности поиска в Backend UI)
- Pimcorestaticroutesbundle
- Pimcorequillbundle (для стандартного WYSIWYG‑редактора)
- Pimcoreuuidbundle
- PimcoreWordExportBundle (для импорта/экспорта переводов в формате Word)
- PimcoreXliffBundle (для импорта/экспорта переводов в формате Xliff)
Автоматизация установки бандлов
Чтобы автоматически установить конкретные бандлы, используйте флаг --install-bundles[=bundleList]. Этот флаг установит и активирует все обязательные бандлы, а также любые указанные бандлы, при условии что они находятся в списке рекомендуемых бандлов.
Примечание: бандлы автоматически добавляются в config/bundles.php.
./vendor/bin/pimcore-install --admin-username=admin --admin-password=admin \
--mysql-username=username --mysql-password=password --mysql-database=pimcore \
--mysql-host-socket=127.0.0.1 --mysql-port=3306 \
--install-bundles=PimcoreApplicationLoggerBundle,PimcoreCustomReportsBundle \
--no-interaction
Изменение обязательных бандлов и рекомендаций по бандлам
Событие BundleSetupEvent срабатывает в двух случаях:
- Для предустановки списка установочных (рекомендуемых) и автоматически устанавливаемых (обязательных) бандлов для опции
--install-bundles. - Для изменения списка рекомендуемых бандлов в интерактивном режиме. Обязательные бандлы не устанавливаются, если пользователь отказывается устанавливать бандлы.
Подписавшись или прослушивая BundleSetupEvent, вы можете добавить или удалить бандлы из списков required или recommended.
Для практических примеров смотрите Pimcore Skeleton. В нём показано, как интегрировать Admin UI Classic Bundle.
<?php
namespace App\EventSubscriber;
use Pimcore\Bundle\AdminBundle\PimcoreAdminBundle;
use Pimcore\Bundle\InstallBundle\Event\BundleSetupEvent;
use Pimcore\Bundle\InstallBundle\Event\InstallEvents;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class BundleSetupSubscriber implements EventSubscriberInterface
{
public static function getSubscribedEvents(): array
{
return [
InstallEvents::EVENT_BUNDLE_SETUP => [
['bundleSetup'],
],
];
}
public function bundleSetup(BundleSetupEvent $event): void
{
// сделать бандл доступным для установки (через --install-bundles) и рекомендовать его в интерактивной установке
$event->addInstallableBundle('PimcoreAdminBundle', PimcoreAdminBundle::class, true);
// добавить обязательный бандл
$event->addRequiredBundle('PimcoreAdminBundle', PimcoreAdminBundle::class);
}
}
Убедитесь, что вы зарегистрировали ваш listener/subscriber в config/installer.yaml как описано в разделе Предварительная настройка установщика.
services:
# конфигурация по умолчанию для сервисов в *этом* файле
_defaults:
# автоматически внедряет зависимости в ваши сервисы
autowire: true
# автоматически регистрирует ваши сервисы в качестве команд, подписчиков на события и т.д.
autoconfigure: true
# это означает, что вы не можете извлекать сервисы непосредственно из контейнера с помощью $container->get()
# если вам нужно это сделать, вы можете переопределить этот параметр для отдельных сервисов
public: false
# ---------------------------------------------------------
# Event Subscribers
# ---------------------------------------------------------
App\EventSubscriber\BundleSetupSubscriber: ~
Предварительная настройка установщика
Вы можете предварительно настроить значения, используемые установщиком, добавив конфигурационный файл, который задаёт значения учётных данных базы данных. Это особенно полезно при установке Pimcore на платформах, где учётные данные доступны через переменные окружения, а не через прямой доступ. Чтобы преднастроить установщик, добавьте конфигурационный файл в config/installer.yaml (файл может быть в любом формате, поддерживаемом конфигурацией Symfony: yaml, xml или php), затем настройте ветку pimcore_install:
# config/installer.yaml
pimcore_install:
parameters:
database_credentials:
user: username
password: password
dbname: pimcore
# переменные env могут быть непосредственно прочитаны с помощью синтаксиса %env()
# см. https://symfony.com/blog/new-in-symfony-3-2-runtime-environment-variables
host: "%env(DB_HOST)%"
port: "%env(DB_PORT)%"
Установка часового пояса
Убедитесь, что вы установили соответствующую временную зону в вашей конфигурации. Она будет использоваться для отображения значений даты/времени в административной панели.
pimcore:
general:
timezone: Europe/Berlin
Предварительный просмотр документа Office
Функция отображения предварительного просмотра документов прямо в Pimcore — опциональна. Чтобы её использовать, необходимо установить либо Gotenberg, либо LibreOffice в зависимости от ваших предпочтений.
Вы можете предложить улучшение документации или задать вопрос в комментариях.
Если вам нужна полноценная консультация — вы можете заказать её на нашем сайте.