Установка на веб‑сервер
Руководство предполагает использование типичной среды LAMP. Если вы используете другую конфигурацию (например, Nginx) или столкнулись с проблемой, посетите раздел Руководство по установке.
1. Системные требования
Ознакомьтесь с разделом системные требования и убедитесь, что ваша система соответствует требованиям для Pimcore.
2. Установка Pimcore и зависимостей
Проще всего установить Pimcore из терминала с помощью Composer. Перейдите в корневую папку вашего проекта:
cd /your/project
Осторожно
Помните: корень проекта (project root) != корень веб‑документов (document root)
Выбор пакета для установки
Доступны два пакета установки:
- демонстрационный пакет с примерами конфигурации и наборами.
- пустой скелет для опытных разработчиков.
1. Skeleton Package (только для опытных разработчиков Pimcore)
COMPOSER_MEMORY_LIMIT=-1 composer create-project pimcore/skeleton my-project
Demo Package
COMPOSER_MEMORY_LIMIT=-1 composer create-project pimcore/demo my-project
Укажите в конфигурации виртуального хоста (vhost) корень документов (document root) на вновь созданную папку /public (пример: /your/project/public).
Учтите, что Pimcore должен быть установлен за пределами document root.
Специфические конфигурации и оптимизации для вашего веб‑сервера доступны здесь:
Apache,
Nginx
Pimcore требует права на запись в следующие директории (относительно корня проекта): /var, /public/var (Подробности)
Если вы запускаете установку с пользовательским именем окружения (environment), убедитесь, что у вас уже есть соответствующие конфигурационные файлы, например config/packages/[env_name]/config.yaml.
3. Создание базы данных
mysql -u root -p -e "CREATE DATABASE project_database charset=utf8mb4;"
Для дополнительной информации, пожалуйста, посетите Руководство по настройке БД
4. Запуск инсталлятора
cd ./my-project
./vendor/bin/pimcore-install
Это запустит интерактивный установщик с несколькими вопросами. Убедитесь, что установлен memory_limit минимум 512M в вашем php.ini файле.
Информация
Pimcore поддерживает полностью автоматизированный процесс установки. Подробнее: Расширенные темы установки
Открытие административного интерфейса
После завершения установки вы сможете открыть административный интерфейс: https://your-host.com/admin
Отладка проблем при установке
Инсталлятор записывает лог в var/log, в котором содержатся ошибки, возникшие во время установки. При отладке установки начните с просмотра этих логов.
5. Cron‑задача для обслуживания (Maintenance Cron Job)
Задачи обслуживания обрабатываются через Symfony Messenger. Команда pimcore:maintenance добавит
сообщения о техническом обслуживании в шину (message bus). Однако команда pimcore:maintenance сама по себе не обрабатывает эти сообщения.
Требуются независимые воркеры, которые будут забирать сообщения из очередей и выполнять задачи обслуживания.
В типичной установке Pimcore рекомендуется настроить воркеры для следующих транспортов:
| # | Название транспорта | Цель |
|---|---|---|
| 1 | pimcore_core | Основные фоновые задачи, такие как конвертация видео, рендеринг предварительных просмотров ассетов и т.д. |
| 2 | pimcore_maintenance | Задачи на техническое обслуживание |
| 3 | pimcore_scheduled_tasks | Запланированные задачи |
| 4 | pimcore_image_optimize | Выполнение оптимизаторов для миниатюр изображений ассетов |
| 5 | pimcore_asset_update | Обработка метаданных ассетов, напр.: количество страниц в Документах, длительность/размеры видео, превью изображений и т. п. |
| 6 | pimcore_search_backend_message | Обновление индекса для бэкенд‑поиска Pimcore. Только если установлен SimpleBackendSearchBundle |
Учтите, что фактический набор транспортов зависит от того, какие бандлы ядра (core bundles) установлены в системе. Поэтому список надо будет скорректировать в соответствии с вашей установкой.
Используйте bin/console debug:messenger чтобы получить список всех доступных транспортов.
Потребление сообщений из очередей выполняется командой messenger:consume (например, bin/console messenger:consume pimcore_core ...).
Вам может понадобиться запустить несколько воркеров, каждый из которых будет потреблять сообщения из отдельной очереди, чтобы долгие задачи не блокировали обработку других сообщений.
Примеры:
bin/console messenger:consume pimcore_core pimcore_maintenance pimcore_scheduled_tasks pimcore_search_backend_message pimcore_asset_update
bin/console messenger:consume pimcore_image_optimize
Мы рекомендуем следовать руководству Symfony Messenger при настройке рабочих процессов в продакшне. Ниже приведён упрощённый пример того, как выполнять задачи обслуживания с помощью cron:
# Эта команда должна выполняться через cron или аналогичный планировщик задач
# она заполняет очередь сообщений необходимыми задачами, которые затем обрабатываются messenger:consume
*/5 * * * * /your/project/bin/console pimcore:maintenance
# Рекомендуется запускать следующие команды через систему управления процессами, например Supervisor
# Пожалуйста, следуйте руководству Symfony Messenger для наилучшей практики в продакшн среде:
# https://symfony.com/doc/current/messenger.html#deploying-to-production
*/5 * * * * /your/project/bin/console messenger:consume pimcore_core pimcore_maintenance pimcore_scheduled_tasks pimcore_search_backend_message --time-limit=300
*/5 * * * * /your/project/bin/console messenger:consume pimcore_asset_update --time-limit=300
*/5 * * * * /your/project/bin/console messenger:consume pimcore_image_optimize --time-limit=300
Для получения дополнительной информации об использовании компонента Messenger в Pimcore см. Symfony Messenger.
В зависимости от установленных и активированных расширений, может понадобиться добавить дополнительные транспорты в команду messenger:consume. Обратитесь к документации соответствующих расширений для подробностей.
Учтите, что cron‑задача должна выполняться от того же пользователя, что и веб‑интерфейс, чтобы избежать проблем с правами доступа (например, www-data).
Для получения информации о том, как справиться с неудавшимися задачами, см. раздел.
Кеширование
Обязательно используйте какой‑нибудь механизм кеширования для повышения производительности. Рекомендуется Redis Cache Storage.
6. Дополнительная информация и помощь
Если вам нужно больше сведений об установке или возникают проблемы при запуске Pimcore, посетите раздел Руководство по установке.
7. Дополнительные материалы для чтения
- Symfony Messenger
- Расширенные темы установки
- Конфигурация Apache
- Конфигурация Nginx
- Настройка базы данных
- Дополнительные инструменты установки
Далее - Структура директорий
Вы можете предложить улучшение документации или задать вопрос в комментариях.
Если вам нужна полноценная консультация — вы можете заказать её на нашем сайте.