Установка 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 httpdsystemctl enable httpdВажно: убедитесь, что порт 80 свободен и что брандмауэр/провайдер не блокирует HTTP.
Шаг 2 — Установка PHP
ProcessWire поддерживает PHP версии > 5.3. В данном руководстве показана установка PHP 7.1 как пример для лучшей безопасности и производительности.
По умолчанию репозиторий CentOS 7 может не содержать нужной версии PHP, поэтому пример использует Webtatic (в качестве одного из вариантов). Webtatic зависит от EPEL.
Установите EPEL и обновите метаданные:
yum -y install epel-releaseyum -y updateДобавьте Webtatic репозиторий:
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpmyum -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 mariadbsystemctl 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 и следуйте шагам: выбор профиля установки, проверка требований, ввод данных базы, создание администратора.


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

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

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

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


Рекомендации по безопасности и эксплуатации
- Используйте 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
- Подготовить шаблоны и поля
Контент-редактору:
- Пройти регистрацию администратора
- Создать первую страницу и проверить загрузку медиа
- Настроить меню и базовую структуру
Частые проблемы и способы устранения
Ошибка подключения к базе (ошибка установки):
- Проверьте правильность имени базы, имени пользователя и пароля.
- Убедитесь, что MariaDB запущена и слушает локальные соединения.
500 Internal Server Error после установки:
- Проверьте логи /var/log/httpd/*_error_log и /var/log/php-fpm если используется.
- Проверьте права на файлы и каталоги.
Права на загрузку файлов:
- Убедитесь, что каталог site/assets и upload имеют владельца apache и контекст httpd_sys_rw_content_t.
Проблемы с SELinux:
- Временно включите setenforce 0 для отладки, но в продакшене примените корректные SELinux контексты.
Недоступен сайт извне:
- Проверьте firewall-cmd и правило –add-service=http
- Проверьте, открыт ли порт 80 в облачном провайдере (security group)
Альтернативные подходы и расширения
- Nginx вместо Apache: если вы предпочитаете Nginx, настройка виртуального хоста и PHP-FPM — распространённый вариант.
- Управляемые репозитории PHP (Remi): позволяют устанавливать более новые версии PHP.
- Docker: можно задеплоить ProcessWire в контейнере для изоляции и более простой миграции.
Быстрая методология развертывания (SOP)
- Подготовить чистую CentOS 7 VM и применить обновления.
- Установить Apache, PHP и MariaDB.
- Настроить базу и пользователя.
- Скачать ProcessWire и настроить права.
- Создать виртуальный хост.
- Выполнить веб-установку и проверить работоспособность.
- Настроить 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 для управления контентом.
Краткое резюме и дальнейшие шаги приведены ниже.
Похожие материалы
RDP: полный гид по настройке и безопасности
Android как клавиатура и трекпад для Windows
Советы и приёмы для работы с PDF
Calibration в Lightroom Classic: как и когда использовать
Отключить Siri Suggestions на iPhone