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

Установка ProcessWire на CentOS 7

7 min read Установка Обновлено 21 Nov 2025
Установка ProcessWire на CentOS 7
Установка ProcessWire на CentOS 7

К чему приводит это руководство

Если вам нужен лёгкий и настраиваемый CMS с гибкой моделью полей и простым API, ProcessWire — хороший выбор. Здесь описаны минимальные практические шаги, пояснения и проверочные тесты, чтобы быстро развернуть рабочий сайт и безопасно его запустить.

Важно: перед началом сделайте бэкап и тестируйте команды в контролируемой среде.

Оглавление

  • Предварительные требования
  • Обзор архитектуры и зависимостей
  • Шаг 1 — Установка Apache
  • Шаг 2 — Установка PHP
  • Шаг 3 — Установка MariaDB и создание базы
  • Шаг 4 — Установка и конфигурация ProcessWire
  • Шаг 5 — Права, SELinux, файервол и виртуальный хост
  • Завершение установки через браузер
  • Рекомендации по безопасности и эксплуатация
  • Критерии приёмки и тесты
  • Чеклисты для ролей
  • Частые проблемы и их решение
  • Краткое резюме

Предварительные требования

  • Минимальная система CentOS 7
  • Доступ root или привилегии sudo
  • Подключение к интернету для загрузки пакетов
  • (Рекомендация) тестовый домен или запись /etc/hosts для разработки

Краткое определение: ProcessWire — CMS с разграничением контента через поля и шаблоны; API помогает управлять страницами и полями программно.

Обзор архитектуры и зависимостей

ProcessWire работает как стандартное PHP-приложение и требует:

  • Веб-сервер (Apache или Nginx)
  • PHP 5.3+ (рекомендуется PHP 7.x для производительности)
  • СУБД MySQL/MariaDB
  • Права записи на каталог сайта для установщика и загрузки файлов

В этом руководстве мы используем Apache и MariaDB, а также рекомендуем PHP 7.1 (как пример). Можно использовать более новые стабильные версии PHP, если они совместимы с установленной версией ProcessWire.

Шаг 1 — Установка Apache

Перед установкой пакетов рекомендуется обновить систему:

yum -y update

Установите Apache HTTPD:

yum -y install httpd

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

systemctl start httpd
systemctl enable httpd

Важно: убедитесь, что порт 80 свободен и что брандмауэр/провайдер не блокирует HTTP.

Шаг 2 — Установка PHP

ProcessWire поддерживает PHP версии > 5.3. В данном руководстве показана установка PHP 7.1 как пример для лучшей безопасности и производительности.

По умолчанию репозиторий CentOS 7 может не содержать нужной версии PHP, поэтому пример использует Webtatic (в качестве одного из вариантов). Webtatic зависит от EPEL.

Установите EPEL и обновите метаданные:

yum -y install epel-release
yum -y update

Добавьте 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-gd php71w-cli ImageMagick

Проверьте установленную версию PHP:

php -v

Ожидаемый вывод будет похож на:

[root@liptan-pc ~]# php -v
PHP 7.1.6 (cli) (built: Jun 10 2017 07:28:42) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies

Настройте php.ini: откройте файл в редакторе (можно использовать nano или vim):

nano /etc/php.ini

Найдите секцию Date и установите часовую зону. Для локализации на Россию используйте пример:

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Europe/Moscow

Сохраните изменения и перезапустите Apache, чтобы применить настройки PHP:

systemctl restart httpd

Примечание: вместо Webtatic вы можете использовать Remi репозиторий или SCL для установки более свежих версий PHP; выбирайте репозиторий, которому вы доверяете.

Шаг 3 — Установка MariaDB и создание базы

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

yum -y install mariadb mariadb-server

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

systemctl start mariadb
systemctl enable mariadb

Запустите скрипт начальной безопасности:

mysql_secure_installation

Скрипт предложит задать root-пароль и удалить тестовую базу/анонимных пользователей. Ответы, как правило: установить root пароль (y), удалить анонимных пользователей (y), отключить удалённый root (рекомендуется y), удалить тестовую БД (y), перезагрузить привилегии (y).

Создайте базу данных и пользователя для ProcessWire:

Подключитесь к MySQL как root:

mysql -u root -p

Создайте базу и пользователя (замените pw_data, pw_user, StrongPassword на свои значения):

CREATE DATABASE pw_data;
CREATE USER 'pw_user'@'localhost' IDENTIFIED BY 'StrongPassword';
GRANT ALL PRIVILEGES ON pw_data.* TO 'pw_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Важно: используйте надёжный пароль и ограничьте доступ пользователя по хосту (локально, если сайт не использует удалённую БД).

Шаг 4 — Установка и конфигурация ProcessWire

Перейдите в каталог веба и загрузите архив последней версии (в примере — master.zip из репозитория GitHub):

cd /var/www
wget https://github.com/processwire/processwire/archive/master.zip

Если unzip не установлен:

yum -y install unzip

Распакуйте архив:

unzip master.zip

Переименуйте папку для удобства:

mv processwire-master processwire

Настройте права и владельца каталога (раздел “Права и файервол” далее).

Шаг 5 — Права, файервол, SELinux и виртуальный хост

Установите владельца каталога как пользователя веб-сервера (apache для CentOS/HTTPD):

chown -R apache:apache /var/www/processwire

Если у вас SELinux включён и вы предпочитаете не отключать его, лучше выставить корректные контексты, нежели полностью выключать SELinux. Рекомендуется дать web-серверу право на запись в каталог данных:

# дать разрешение на запись для httpd
chcon -R -t httpd_sys_rw_content_t /var/www/processwire

Если вы временно отключаете SELinux для отладки:

setenforce 0

Чтобы полностью отключить SELinux, отредактируйте /etc/selinux/config и установите SELINUX=disabled, затем перезагрузите систему.

Откройте HTTP в файерволе:

firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --reload

Создайте конфиг виртуального хоста Apache (замените cms.yourdomain.com на ваш домен):

nano /etc/httpd/conf.d/cms.yourdomain.com.conf

Вставьте конфигурацию:


    ServerAdmin [email protected]
    DocumentRoot "/var/www/processwire"
    ServerName cms.yourdomain.com
    ServerAlias www.cms.yourdomain.com
    
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    
    ErrorLog "/var/log/httpd/cms.yourdomain.com-error_log"
    CustomLog "/var/log/httpd/cms.yourdomain.com-access_log" combined

Сохраните файл и перезапустите Apache:

systemctl restart httpd

Совет: для публичного сайта обязательно добавьте HTTPS (см. раздел “Рекомендации по безопасности”).

Завершение установки через браузер

Откройте в браузере адрес вашего домена:

http://cms.yourdomain.com

Вы увидите стартовую страницу установщика ProcessWire. Нажмите Get Started и следуйте шагам: выбор профиля установки, проверка требований, ввод данных базы, создание администратора.

Страница приветствия ProcessWire

Начальная страница установки ProcessWire

Выберите профиль установки (Default, Blank, Classic и т.д.) и продолжайте.

Проверка системных требований ProcessWire

Введите данные базы данных и базовые настройки сайта.

Параметры подключения к базе данных MySQL

Укажите безопасный URL администратора (неочевидный поддомен/путь), логин и надёжный пароль.

Вход в админ-панель ProcessWire

После успешной записи базы вы попадёте в интерфейс управления сайтом.

Успешная установка ProcessWire — страница сайта

Панель управления администратора ProcessWire

Рекомендации по безопасности и эксплуатации

  • Используйте HTTPS: получите сертификат от Let’s Encrypt или другого CA и настройте SSL для Apache.
  • Отключите индексацию директорий (Options -Indexes в конфигурации Apache).
  • Ограничьте доступ к админ-панели по IP (при возможности) или используйте двухфакторную аутентификацию.
  • Регулярно обновляйте систему, PHP, MariaDB и ProcessWire.
  • Храните резервные копии базы и файлов вне сервера или в облаке.
  • Минимизируйте права файловой системы: каталоги 755, файлы 644; каталоги, требующие записи (upload, site/assets), дайте права только для записи веб-пользователю.
  • Если не хотите отключать SELinux, используйте правильные контексты: chcon и restorecon.

Пример команды для восстановления контекстов SELinux (если требуется):

restorecon -Rv /var/www/processwire

Критерии приёмки

  • Сайт доступен по HTTP(S) и возвращает код 200 на страницу фронтенда.
  • Админ-панель доступна по выбранному URL и успешный вход под созданным админом.
  • Создание и сохранение новой страницы/записи в ProcessWire работает без ошибок.
  • База данных подключена и записи создаются в ней.
  • Веб-сервер ведёт логи ошибок и доступа (проверить /var/log/httpd).
  • Права файлов и владельцы настроены корректно, отсутствуют широкие права на конфиги.

Тесты и приёмочные сценарии

  • Открыть http://cms.yourdomain.com — ожидается отображение установленного сайта.
  • Войти в админ-панель — ожидание: успешный вход.
  • Создать страницу с текстом и изображением, проверить, что изображение загружается.
  • Отключить PHP модуль mysqli и проверить, что установщик сообщает об ошибке (имитация ошибки). Это помогает понять поведение при неполных зависимостях.

Чеклисты по ролям

Системному администратору:

  • Обновить систему
  • Установить Apache, PHP и MariaDB
  • Настроить SELinux/контексты
  • Настроить бэкапы и мониторинг

Веб-разработчику:

  • Проверить совместимость версии ProcessWire с PHP
  • Настроить виртуальный хост и конфигурацию .htaccess
  • Подготовить шаблоны и поля

Контент-редактору:

  • Пройти регистрацию администратора
  • Создать первую страницу и проверить загрузку медиа
  • Настроить меню и базовую структуру

Частые проблемы и способы устранения

  1. Ошибка подключения к базе (ошибка установки):

    • Проверьте правильность имени базы, имени пользователя и пароля.
    • Убедитесь, что MariaDB запущена и слушает локальные соединения.
  2. 500 Internal Server Error после установки:

    • Проверьте логи /var/log/httpd/*_error_log и /var/log/php-fpm если используется.
    • Проверьте права на файлы и каталоги.
  3. Права на загрузку файлов:

    • Убедитесь, что каталог site/assets и upload имеют владельца apache и контекст httpd_sys_rw_content_t.
  4. Проблемы с SELinux:

    • Временно включите setenforce 0 для отладки, но в продакшене примените корректные SELinux контексты.
  5. Недоступен сайт извне:

    • Проверьте firewall-cmd и правило –add-service=http
    • Проверьте, открыт ли порт 80 в облачном провайдере (security group)

Альтернативные подходы и расширения

  • Nginx вместо Apache: если вы предпочитаете Nginx, настройка виртуального хоста и PHP-FPM — распространённый вариант.
  • Управляемые репозитории PHP (Remi): позволяют устанавливать более новые версии PHP.
  • Docker: можно задеплоить ProcessWire в контейнере для изоляции и более простой миграции.

Быстрая методология развертывания (SOP)

  1. Подготовить чистую CentOS 7 VM и применить обновления.
  2. Установить Apache, PHP и MariaDB.
  3. Настроить базу и пользователя.
  4. Скачать ProcessWire и настроить права.
  5. Создать виртуальный хост.
  6. Выполнить веб-установку и проверить работоспособность.
  7. Настроить HTTPS и бэкапы.

Принятие решений — простая диаграмма

flowchart TD
  A[Начало] --> B{Есть ли домен?}
  B -- Да --> C[Настроить DNS]
  B -- Нет --> D[Использовать /etc/hosts для теста]
  C --> E[Установить Apache, PHP, MariaDB]
  D --> E
  E --> F[Загрузить ProcessWire]
  F --> G[Настроить права и виртуальный хост]
  G --> H[Выполнить установку через браузер]
  H --> I{Успех}
  I -- Да --> J[Включить HTTPS, бэкапы]
  I -- Нет --> K[Проверить логи и права]

Короткий словарь терминов

  • Виртуальный хост: конфигурация веб-сервера для обслуживания домена.
  • SELinux: подсистема контроля доступа в Linux.
  • EPEL/Webtatic/Remi: сторонние репозитории пакетов для CentOS.

Часто задаваемые вопросы (коротко)

Q: Можно ли использовать PHP 7.4 или 8.x? A: Да, ProcessWire поддерживает более новые версии PHP, если конкретная версия ProcessWire совместима. Рекомендуется тестировать в dev-среде.

Q: Нужно ли отключать SELinux? A: Нет — лучше настроить правильные контексты, чем полностью отключать SELinux в продакшене.

Заключение

Установка ProcessWire на CentOS 7 включает стандартные шаги: установка веб-сервера, PHP, СУБД, загрузка CMS и настройка прав. Важная часть — безопасность (HTTPS, права, SELinux) и тестирование после установки. После выполнения всех шагов вы получите гибкий CMS с API для управления контентом.

Краткое резюме и дальнейшие шаги приведены ниже.

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

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

RDP: полный гид по настройке и безопасности
Инфраструктура

RDP: полный гид по настройке и безопасности

Android как клавиатура и трекпад для Windows
Гайды

Android как клавиатура и трекпад для Windows

Советы и приёмы для работы с PDF
Документы

Советы и приёмы для работы с PDF

Calibration в Lightroom Classic: как и когда использовать
Фото

Calibration в Lightroom Classic: как и когда использовать

Отключить Siri Suggestions на iPhone
iOS

Отключить Siri Suggestions на iPhone

Рисование таблиц в Microsoft Word — руководство
Office

Рисование таблиц в Microsoft Word — руководство