Гид по технологиям

Установка Pimcore CMS на CentOS 7

• 6 min read • Инфраструктура • Обновлено 21 Nov 2025
Установка Pimcore CMS на CentOS 7
Установка 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 nginx
systemctl 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.rpm
yum -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-fpm
systemctl enable php-fpm

Примечание: использование UNIX‑сокета обычно быстрее и безопаснее, чем TCP для локального подключения.

Шаг 3 - Установка MariaDB

Установите MariaDB (форк MySQL):

yum -y install mariadb mariadb-server

Запустите и включите автозапуск:

systemctl start mariadb
systemctl 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.rpm
yum -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=http
firewall-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), данные базы и учётную запись администратора.

Панель установки Pimcore — начальная страница

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

Форма установки Pimcore — выбор базы данных и админа

Типичные ошибки и способы их решения

  • 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) для снижения нагрузки.

Резервное копирование и откат

Минимальная стратегия отката:

  1. Снимок БД: mysqldump или бинарные бэкапы.
  2. Архив каталога /var/www/pimcore (особенно папки /website/var и /public).
  3. Документируйте версии 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 для производительности, и автоматизированных резервных копий для устойчивости.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро