Установка Pimcore CMS на CentOS 7
Кому полезно
- Системным администраторам и DevOps-инженерам, которые разворачивают Pimcore на CentOS 7.
- Разработчикам, которым нужно понимание окружения: Nginx + PHP‑FPM + MariaDB.
Краткое содержание
- Установка Nginx, PHP 7.1, MariaDB
- Дополнительные пакеты (FFmpeg, LibreOffice и т.д.)
- Настройка прав и виртуального хоста Nginx
- Рекомендации по безопасности и отладке
Важно: инструкции предполагают минимальную установку CentOS 7 и доступ root. В реальном проде используйте ненулевые пароли, резервные копии и TLS.
Что такое Pimcore
Pimcore — свободная PIM/MDM/CMF/дижитал-экспириенс платформа на PHP. Коротко: CMS с расширяемой архитектурой и большим набором функций для предприятий.
Шаг 0 — Подготовка системы
- Минимальная CentOS 7 система, доступ root.
- Проверка свободного места и часов сервера.
- Резервная копия важных данных, если система не новая.
Совет: используйте отдельную виртуальную машину для экспериментальной установки, прежде чем разворачивать на проде.
Шаг 1 - Установка Nginx
Перед установкой обновите систему:
yum -y install epel-release
yum -y updateУстановите Nginx:
yum -y install nginxЗапустите и включите автозапуск:
systemctl start nginxsystemctl enable nginxПримечание: в CentOS 7 можно также использовать Apache, но приведённый далее конфиг и PHP‑FPM настроены под Nginx.
Шаг 2 - Установка PHP
Pimcore требует PHP >= 5.6, рекомендуется современная ветка. В этом руководстве используется PHP 7.1 (авторский выбор). Если доступно более свежее стабильное окружение в вашей инфраструктуре — используйте его.
Добавьте репозиторий Webtatic и обновите:
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpmyum -y updateУстановите PHP 7.1 и необходимые расширения:
yum -y install php71w php71w-mysqli php71w-fpm php71w-gd php71w-cli php71w-iconv php71w-dom php71w-simplexml php71w-exif php71w-fileinfo php71w-mbstring php71w-zlib php71w-zip php71w-bz2 php71w-openssl php71w-opcache php71w-curl php71w-pecl-redis ImageMagickПроверьте установку:
php -vОткройте конфиг PHP (/etc/php.ini) и скорректируйте: timezone и лимиты загрузки файлов.
nano /etc/php.iniНайдите секцию Date и установите часовой пояс, пример для Москвы:
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Europe/MoscowИзмените ограничения загрузки файлов:
upload_max_filesize = 100M
post_max_size = 100MСохраните файл.
Отредактируйте пул PHP‑FPM:
nano /etc/php-fpm.d/www.confЗамените пользователя apache на nginx:
user = nginx
group = nginxРазкомментируйте и укажите владельца слушателя:
listen.owner = nginx
listen.group = nginx
listen.mode = 0660Переключите прослушивание на UNIX‑сокет:
#listen = 127.0.0.1:9000
listen = /var/run/php-fpm/php-fpm.sockЗапустите и включите PHP‑FPM:
systemctl start php-fpmsystemctl enable php-fpmПримечание: использование UNIX‑сокета обычно быстрее и безопаснее, чем TCP для локального подключения.
Шаг 3 - Установка MariaDB
Установите MariaDB (форк MySQL):
yum -y install mariadb mariadb-serverЗапустите и включите автозапуск:
systemctl start mariadbsystemctl enable mariadbЗаштатируйте скрипт безопасной настройки:
mysql_secure_installationПо умолчанию при свежей установке root-пароль отсутствует — нажмите Enter. Затем задайте сильный пароль и ответьте положительно на остальные вопросы.
Создайте базу и пользователя для Pimcore:
mysql -u root -pВнутри MySQL:
CREATE DATABASE pimcore_data CHARACTER SET UTF8;
CREATE USER 'pimcore_user'@'localhost' IDENTIFIED BY 'StrongPassword';
GRANT ALL PRIVILEGES ON pimcore_data.* TO 'pimcore_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;Важно: замените StrongPassword на надёжный пароль и храните его в менеджере секретов.
Шаг 4 - Дополнительные серверные пакеты
Некоторые операции Pimcore (преобразование документов, PDF, генерация изображений) требуют внешних инструментов. Добавьте RPM Fusion и установите пакеты:
rpm -Uvh https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpmyum -y install ffmpeg libreoffice libreoffice-math xorg-x11-fonts-75dpi poppler-utils inkscape libXrender ghostscript fontconfig wkhtmltopdfЭто установит ffmpeg, LibreOffice (для конвертации документов), pdftotext (poppler-utils), Inkscape и wkhtmltopdf.
Примечание: wkhtmltopdf может требовать специальной версии для безголовой среды — проверяйте совместимость.
Шаг 5 - Скачивание и установка Pimcore
Перейдите в каталог веб‑контента и скачайте нужный архив.
cd /var/wwwДля установки с демоданными (подходит для обучения):
wget https://www.pimcore.org/download/pimcore-data.zipДля чистой установки:
wget https://www.pimcore.org/download/pimcore-latest.zipДля nightly‑сборок (разработка) есть отдельный архив. Распакуйте:
unzip pimcore*.zip -d pimcoreЕсли unzip не установлен:
yum -y install unzipСовет: альтернативный современный способ — устанавливать Pimcore через Composer, если вы предпочитаете управление зависимостями через Composer. Это выходит за рамки этого руководства, но для продакшена рекомендуется использовать Composer‑based workflow.
Шаг 6 - Права, SELinux и брандмауэр
Установите владельца приложения в nginx:
chown -R nginx:nginx /var/www/pimcoreРазрешите HTTP в firewall:
firewall-cmd --zone=public --permanent --add-service=httpfirewall-cmd --reloadЕсли SELinux включён и даёт сбои, временно переключите режим:
setenforce 0Чтобы полностью отключить SELinux, отредактируйте файл /etc/selinux/config и измените:
SELINUX=enforcingна
SELINUX=disabledВажно: отключение SELinux снижает безопасность. Лучше настроить контексты файлов и разрешения SELinux для nginx/php‑fpm, чем полностью выключать SELinux в проде.
Пример: если SELinux включён, выполните:
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/pimcore(/.*)?'
restorecon -Rv /var/www/pimcoreШаг 7 - Виртуальный хост Nginx
Создайте конфигурацию сервера:
nano /etc/nginx/conf.d/cms.yourdomain.com.confВставьте конфигурацию (как в оригинальном руководстве):
server {
root /var/www/pimcore;
index index.php;
server_name cms.yourdomain.com;
listen 80;
access_log /var/www/pimcore/website/var/log/nginx_access.log;
error_log /var/www/pimcore/website/var/log/nginx_error.log error;
set $getassets "";
if ($uri ~* ^/website/var/assets) { set $getassets "${getassets}A"; }
if ($request_method = GET) { set $getassets "${getassets}B"; }
if ($getassets = "AB") {
rewrite ^ $uri$args last;
}
location ~* ^(/plugins/(?!.*/static).*|^/pimcore/(?!(static|modules/3rdparty)).*|/website/var/(?!tmp|assets|areas)|/modules/(?!.*/static).*|^(vendor|tests|node_modules|phing)/.*|^(bower|package|composer|gulpfile)\.) {
return 403;
}
location / {
try_files $uri $uri/ /index.php$is_args$args;
index index.php;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_read_timeout 60;
}
location ~* \.(jpe?g|gif|png|bmp|ico|css|js|pdf|zip|htm|html|docx?|xlsx?|pptx?|txt|wav|swf|svg|avi|mp\d)$ {
access_log off;
log_not_found off;
try_files $uri $uri/ /website/var/assets$uri /index.php$is_args$args;
expires 1w;
}
rewrite ^\/cache-buster-\d+(.*) $1 break;
location /fpm-ping {
access_log off;
include fastcgi_params;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
}
location /fpm-status {
allow 127.0.0.1;
deny all;
access_log off;
include fastcgi_params;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
}
location /nginx-status {
allow 127.0.0.1;
deny all;
access_log off;
stub_status;
}
}Замените cms.yourdomain.com на ваш домен. Сохраните и перезапустите Nginx:
systemctl restart nginxШаг 8 - Завершение установки через веб
Откройте в браузере:
http://cms.yourdomain.comВы увидите страницу установки, где нужно указать адаптер базы данных (выберите mysqli), данные базы и учётную запись администратора.

Выберите mysqli, заполните данные базы и нажмите Install Now!. Установка займёт несколько секунд.

Типичные ошибки и способы их решения
- 502 Bad Gateway: проверьте, что php-fpm запущен и слушает сокет /var/run/php-fpm/php-fpm.sock, и что в nginx указан тот же путь.
- Права доступа: если 403 при обращении к статике, проверьте владельца и SELinux контекст для /var/www/pimcore.
- Проблемы с wkhtmltopdf: используйте рекомендованные сборки без опций для X11 или установите headless-совместимую версию.
- Ошибки подключения к БД: убедитесь в правильности имени пользователя, пароля и что MariaDB слушает локальные соединения.
Безопасность и производительность
- Используйте HTTPS (Let’s Encrypt) — настройте nginx на 443 и форсируйте редирект с 80.
- Регулярно обновляйте PHP, MariaDB, Nginx и пакеты ОС.
- Настройте резервное копирование базы и каталога /var/www/pimcore.
- В продакшене включайте и настраивайте SELinux, а не отключайте его навсегда.
- Ограничьте доступ к сервисным endpoint — /fpm-status и /nginx-status отдавать только из внутренней сети.
- Настройте OPcache и кеширование на уровне HTTP (например, Varnish или CDN) для снижения нагрузки.
Резервное копирование и откат
Минимальная стратегия отката:
- Снимок БД: mysqldump или бинарные бэкапы.
- Архив каталога /var/www/pimcore (особенно папки /website/var и /public).
- Документируйте версии PHP, MariaDB и конфиги nginx/php-fpm.
Пример команды бэкапа БД:
mysqldump -u root -p pimcore_data > /root/pimcore_data_$(date +%F).sqlЧеклист приёмки (role-based)
- Системный админ:
- Nginx и php-fpm запущены и в автозапуске.
- Права на /var/www/pimcore настроены.
- SELinux и firewall настроены по политике.
- DBA:
- Создана база pimcore_data и пользователь с ограниченными правами.
- Сделан тестовый бэкап и восстановление.
- Разработчик:
- Доступ к административной панели Pimcore.
- Загружены тестовые активы и проверена генерация миниатюр.
Критерии приёмки
- Сайт доступен по HTTP(S) и возвращает 200.
- Вход в административную панель успешен.
- Загрузка и конвертация файлов работает (например, изображение, PDF).
- Бэкап БД успешно создаётся и восстанавливается.
Альтернативные подходы
- Apache + mod_php: проще для некоторых администраторов, но менее эффективен по памяти в современных окружениях.
- Docker/Kubernetes: контейнеризация упрощает развертывание и обновления, рекомендуется для масштабируемых инсталляций.
- Установка через Composer: более гибкая amdёолняемая, подходит для CI/CD.
Советы по миграции и обновлениям
- Перед обновлением Pimcore всегда делайте бэкап БД и файлов.
- Тестируйте обновление на стенде идентичном проду.
- Читайте релизные заметки Pimcore: возможны изменения в совместимости PHP/расширений.
Итог
Установка Pimcore на CentOS 7 включает стандартные компоненты: Nginx, PHP‑FPM, MariaDB и набор инструментов для обработки контента. Важны права доступа, корректная настройка PHP и внимательное отношение к безопасности (HTTPS, SELinux, бэкапы). Для продакшена рекомендуется автоматизировать развёртывание и использовать Composer/контейнеры.
Ключевые шаги: обновить систему, установить PHP и расширения, MariaDB, дополнительные бинарные зависимости, распаковать Pimcore, настроить права и виртуальный хост, пройти веб‑установку.
Дополнительно: рассмотрите использование Let’s Encrypt для HTTPS, настройку опкеша и CDN для производительности, и автоматизированных резервных копий для устойчивости.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента