Установка Pagekit CMS на CentOS 7 с NGINX и MariaDB
Этот пошаговый гид показывает, как развернуть Pagekit CMS на CentOS 7 с NGINX, MariaDB и PHP-FPM. Включены опции получения SSL-сертификатов через acme.sh и Let’s Encrypt, советы по безопасности, чеклисты и краткая шпаргалка по командам.
Краткое описание и цели
Pagekit — современный модульный CMS с открытым исходным кодом (лицензия MIT), построенный на Symfony-компонентах и Vue.js. В этом руководстве вы выполните полную установку: от подготовки системы до финальной настройки в веб-интерфейсе.
Варианты поиска (primary intent + related): установка Pagekit, Pagekit на CentOS, Pagekit NGINX, Pagekit MariaDB, Pagekit SSL, как установить Pagekit
Требования
Перед началом убедитесь, что сервер соответствует минимальным требованиям:
- Веб-сервер: Apache 2.2+ или NGINX.
- База данных: MySQL 5.1+ или SQLite 3. Также поддерживается MariaDB.
- PHP 5.5.9+ (рекомендуется PHP 7.2 или выше).
- Обязательные PHP-расширения: json, session, ctype, tokenizer, SimpleXML, DOM, mbstring, pcre, zip и PDO (с MySQL или SQLite драйвером).
- Дополнительно: curl, iconv, xmlparser, APC/XCache для ускорения (опционально).
Предварительные условия
- Сервер с CentOS 7.
- Непользователь root с sudo-привилегиями.
Начальные шаги (проверка и обновление системы)
Проверьте версию CentOS:
cat /etc/centos-release
# CentOS Linux release 7.6.1810 (Core)Установите часовой пояс (пример):
timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'Обновите пакеты системы:
sudo yum update -yУстановите базовые утилиты:
sudo yum install -y curl wget vim git unzip socat bash-completion epel-releaseImportant
- Всегда выполняйте резервное копирование конфигураций перед изменениями.
- Не используйте root для регулярной работы — применяйте пользователя с sudo.
Шаг 1 — Установка PHP и необходимых расширений
Подключите репозиторий Webtatic и установите PHP 7.2 и расширения (пример):
sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
sudo yum install -y php72w php72w-cli php72w-fpm php72w-common php72w-mbstring php72w-zip php72w-mysql php72w-sqlite3 php72w-curl php72w-xmlПроверка установленных модулей и версии PHP:
php -m
php --versionЗапустите и включите сервис PHP-FPM:
sudo systemctl start php-fpm.service
sudo systemctl enable php-fpm.serviceШаг 2 — Установка MariaDB и создание базы данных
Мы используем MariaDB в примере. Установка и запуск:
sudo yum install -y mariadb-server
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.serviceУсиление безопасности и установка пароля root:
sudo mysql_secure_installationОтветьте на вопросы скрипта, например:
- Настроить VALIDATE PASSWORD — N
- Указать новый пароль root
- Удалить анонимных пользователей — Y
- Запретить удалённый вход root — Y
- Удалить тестовую базу — Y
Подключитесь к консоли MariaDB и создайте базу и пользователя для Pagekit:
sudo mysql -u root -p
MariaDB> CREATE DATABASE dbname;
MariaDB> GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
MariaDB> FLUSH PRIVILEGES;
MariaDB> exitЗамените dbname, username и password на свои значения.
Шаг 3 — Установка acme.sh и получение сертификата Let’s Encrypt (опционально)
acme.sh — лёгкий клиент для получения сертификатов без лишних зависимостей.
Установка:
sudo su - root
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install --accountemail you@example.com
source ~/.bashrc
cd ~Проверка версии:
acme.sh --versionПолучение сертификатов RSA и ECDSA (пример для domain example.com):
# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256Установка сертификатов в выбранную директорию и настройка перезагрузки nginx при обновлении:
mkdir -p /etc/letsencrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc
# RSA
acme.sh --install-cert -d example.com \
--cert-file /etc/letsencrypt/example.com/cert.pem \
--key-file /etc/letsencrypt/example.com/private.key \
--fullchain-file /etc/letsencrypt/example.com/fullchain.pem \
--reloadcmd "sudo systemctl reload nginx.service"
# ECC/ECDSA
acme.sh --install-cert -d example.com --ecc \
--cert-file /etc/letsencrypt/example.com_ecc/cert.pem \
--key-file /etc/letsencrypt/example.com_ecc/private.key \
--fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem \
--reloadcmd "sudo systemctl reload nginx.service"Все сертификаты должны автоматически обновляться acme.sh по умолчанию.
После завершения вернитесь к обычному sudo-пользователю:
exitNote
- Для тестирования можно добавить флаг –staging чтобы использовать стенд Let’s Encrypt.
Шаг 4 — Установка и конфигурация NGINX для Pagekit
Установите nginx:
sudo yum install -y nginx
sudo systemctl start nginx.service
sudo systemctl enable nginx.serviceПример конфигурации для /etc/nginx/conf.d/pagekit.conf:
server {
listen [::]:443 ssl http2;
listen 443 ssl http2;
listen [::]:80;
listen 80;
server_name example.com;
index index.php index.html;
root /var/www/pagekit;
ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com/private.key;
ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.key;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
try_files $fastcgi_script_name =404;
set $path_info $fastcgi_path_info;
fastcgi_param PATH_INFO $path_info;
fastcgi_index index.php; include fastcgi.conf;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass 127.0.0.1:9000;
}
}Проверка и перезагрузка:
sudo nginx -t
sudo systemctl reload nginx.serviceСовет
- В production обязательно включите HTTP->HTTPS перенаправление и обновите заголовки безопасности.
Шаг 5 — Загрузка и установка Pagekit
Создайте корневую папку сайта и назначьте владельца:
sudo mkdir -p /var/www/pagekit
sudo chown -R your_user:your_user /var/www/pagekit
cd /var/www/pagekitСкачайте стабильный релиз Pagekit и распакуйте:
wget https://github.com/pagekit/pagekit/releases/download/1.0.16/pagekit-1.0.16.zip
unzip pagekit-1.0.16.zip
rm pagekit-1.0.16.zipУстановите корректные права и пользователя процесса веб-сервера (пример nginx):
sudo chown -R nginx:nginx /var/www/pagekitОтредактируйте PHP-FPM pool, чтобы процесс работал от пользователя nginx, если нужно:
sudo vim /etc/php-fpm.d/www.conf
# user = nginx
# group = nginx
sudo systemctl restart php-fpm.serviceОткройте сайт в браузере и следуйте мастеру установки.
Шаг 6 — Завершение настройки через веб-интерфейс

На странице установщика нажмите правую стрелку, выберите язык и продолжите.

Выберите тип базы данных (SQLite или MySQL/MariaDB) и заполните поля подключения.

Задайте параметры сайта и создайте администратора.

После завершения вы попадёте на страницу входа в админку.

Полезные дополнения и рекомендации
1-line glossary
- PHP-FPM: менеджер процессов PHP для работы через FastCGI.
- acme.sh: клиент для автоматизации получения сертификатов от Let’s Encrypt.
Чеклист перед запуском в продакшен
- Проверить права доступа на /var/www/pagekit (минимально привилегии).
- Настроить бэкапы базы и файлов сайта.
- Включить HTTPS и настроить перенаправление.
- Обновить компоненты PHP и модулей до поддерживаемых версий.
Шпаргалка команд (часто используемые)
- Обновление системы: sudo yum update -y
- Установка nginx: sudo yum install -y nginx
- Перезапуск PHP-FPM: sudo systemctl restart php-fpm.service
- Проверка nginx: sudo nginx -t
- Создание БД: sudo mysql -u root -p
Роли и обязанности (кто что делает)
- Системный администратор: настройка сервера, nginx, PHP-FPM, SSL, бэкапы.
- DBA: установка и поддержка MariaDB/MySQL, бэкапы, оптимизация запросов.
- Веб-разработчик: установка Pagekit, темы, плагины, интеграции.
Критерии приёмки
- Веб-интерфейс установщика доступен по HTTPS.
- Админ-панель входит под созданным логином.
- Главная страница сайта отдаёт 200 OK и статические ресурсы фильтруются через nginx.
- Сертификат корректно установлен и не выдаёт предупреждений.
Отладка — типовые проблемы и решения
- 502 Bad Gateway: проверьте, что php-fpm слушает адрес/порт, указанный в fastcgi_pass.
- 403 Forbidden: проверьте права на папку и SELinux (если включён, используйте chcon или поставьте правильные контексты).
- Ошибки подключения к БД: проверьте credentials и host (127.0.0.1 vs localhost).
Security hardening (рекомендации)
- Отключите отображение ошибок PHP в продакшене.
- Используйте строгие права на файлы: 750 для директорий, 640 для конфигов.
- Включите HTTP Strict Transport Security (HSTS) для HTTPS.
- Ограничьте доступ к административным разделам по IP, если возможно.
Edge cases / когда этот подход не подойдёт
- Если вы хотите минимальную установку без веб-сервера, рассмотрите SQLite и встроенные варианты развертывания.
- На хостингах с ограниченным доступом к пакетам RPM/репозиториям может потребоваться собрать окружение вручную.
Мини-методология развертывания
- Подготовка сервера и резервное копирование существующих конфигураций.
- Установка стека LEMP (NGINX, MariaDB, PHP-FPM).
- Получение и установка сертификатов.
- Развёртывание файлов Pagekit и настройка прав.
- Финальная настройка в веб-интерфейсе.
Краткое резюме
- Pagekit легко устанавливается на CentOS 7 при наличии NGINX и PHP-FPM.
- Рекомендуется использовать MariaDB/MySQL для производительности на больших сайтах, SQLite подходит для тестовой среды.
- SSL через acme.sh и Let’s Encrypt упрощает безопасный запуск в продакшене.
Ссылки
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента