Установка Pagekit на Fedora 29 (NGINX + MariaDB)

Pagekit — современная, интуитивная, модульная и гибкая система управления контентом с открытым исходным кодом (лицензия MIT), построенная на компонентах Symfony и Vue.js. Она предоставляет инструменты для создания красивых сайтов: мощная система тем и плагинов.
В этом руководстве мы пройдём процесс установки Pagekit на Fedora 29, используя NGINX как веб‑сервер, MariaDB как базу данных и, при желании, защитим транспортный слой через acme.sh и Let’s Encrypt.
Требования
Убедитесь, что сервер соответствует минимальным требованиям Pagekit:
- Веб‑сервер: Apache 2.2+ или NGINX.
- База данных: MySQL 5.1+ или SQLite 3. MariaDB полностью совместима с MySQL.
- PHP 7.0 или выше (рекомендуется 7.2+).
- Обязательные PHP‑расширения: JSON, Session, ctype, Tokenizer, SimpleXML, DOM, mbstring, PCRE 8.0+, ZIP и PDO с драйвером для MySQL или SQLite.
- Дополнительно рекомендуются: cURL, iconv, XML Parser, APC или XCache для кеширования.
Важно: Fedora 29 по умолчанию содержит PHP 7.2, что удовлетворяет требования Pagekit.
Подготовка
Требуется:
- Система Fedora 29.
- Нерoot‑пользователь с правами sudo.
Проверьте версию системы:
cat /etc/fedora-release
# Fedora release 29 (Twenty Nine)Установите часовой пояс:
timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'Обновите пакеты системы:
sudo dnf upgrade -yУстановите базовые утилиты для администрирования:
sudo dnf install -y curl wget vim git sudo unzip socat bash-completionШаг 1 — Установка PHP и необходимых расширений
Pagekit требует PHP 7.0+. На Fedora 29 возьмём PHP 7.2 из репозитория и установим нужные расширения:
sudo dnf install -y php-cli php-fpm php-common php-mbstring php-zip php-mysqlnd php-sqlite3 php-curl php-xml php-jsonПоказать загруженные модули PHP можно командой:
php -m
ctype
curl
exif
fileinfo
. . .Проверить версию PHP:
php --version
# PHP 7.2.14 (cli) (built: Jan 8 2019 09:59:17) ( NTS )Запустите и включите службу PHP‑FPM:
sudo systemctl start php-fpm.service
sudo systemctl enable php-fpm.serviceВажно: убедитесь, что PHP‑FPM слушает сокет или порт, соответствующий конфигурации NGINX (ниже — unix:/run/php-fpm/www.sock).
Шаг 2 — Установка MariaDB и создание базы данных для Pagekit
Pagekit поддерживает MySQL/MariaDB и SQLite. В этом руководстве используем MariaDB.
Установите MariaDB:
sudo dnf install -y mariadb-serverЗапустите и включите службу:
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.serviceЗапустите скрипт безопасной настройки MariaDB:
sudo mysql_secure_installationСледуйте подсказкам скрипта (рекомендуются ответы Y для установки пароля root, удаления анонимных пользователей, запрета удалённого входа root и удаления тестовой базы):
Enter current password for root (enter for none): <Нажмите Enter>
Set root password? [Y/n] Y
New password: <Введите надёжный пароль>
Re-enter new password: <Повторите пароль>
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] YВойдите в MariaDB и создайте базу и пользователя для Pagekit (запомните имя базы, имя пользователя и пароль):
sudo mysql -u root -p
# Введите пароль
CREATE DATABASE dbname;
GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
quitСовет: используйте длинные случайные пароли и храните их в безопасном менеджере паролей.
Шаг 3 — Установка acme.sh и получение сертификата Let’s Encrypt (опционально)
HTTPS не обязателен, но рекомендуется. В руководстве используется acme.sh — лёгкий shell‑клиент для получения сертификатов Let’s Encrypt.
Установка acme.sh:
sudo su - root
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install --accountemail your-email@example.com
source ~/.bashrc
cd ~Проверка версии:
acme.sh --version
# v2.8.1Получение сертификатов RSA и ECDSA (замените example.com на ваш домен):
# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256Для тестирования используйте флаг –staging.
Создайте директории для хранения сертификатов (в примере — /etc/letsencrypt):
mkdir -p /etc/letsencrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_eccУстановите/копируйте сертификаты в /etc/letsencrypt:
# 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 автоматически продлевает сертификаты. По умолчанию — период обновления примерно каждые 60 дней (Let’s Encrypt выдаёт сертификаты на 90 дней, acme.sh сам решает сроки обновления).
После окончания работы выйдите из root:
exitШаг 4 — Установка и конфигурация NGINX для Pagekit
Установите NGINX:
sudo dnf install -y nginxЗапустите и включите сервис:
sudo systemctl start nginx.service
sudo systemctl enable nginx.serviceСоздайте конфигурацию виртуального хоста:
sudo vim /etc/nginx/conf.d/pagekit.confНаполните файл примерно таким блоком (замените example.com и пути по необходимости):
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$ {
include default.d/php.conf;
fastcgi_pass unix:/run/php-fpm/www.sock;
}
}Проверка синтаксиса NGINX и перезагрузка:
sudo nginx -t
sudo systemctl reload nginx.serviceВажно: если вы используете другой путь сокета или TCP‑порт для PHP‑FPM, обновите fastcgi_pass в конфигурации.
Шаг 5 — Загрузка и установка Pagekit CMS
Создайте корневую директорию сайта и назначьте владельца:
sudo mkdir -p /var/www/pagekit
sudo chown -R your_user:your_user /var/www/pagekit
cd /var/www/pagekitСкачайте последнюю стабильную версию Pagekit (в примере 1.0.16):
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 в Fedora обычно работает от пользователя nginx):
sudo chown -R nginx:nginx /var/www/pagekitОткройте конфигурацию PHP‑FPM и убедитесь, что пользователь/группа установлены в nginx (в файле /etc/php-fpm.d/www.conf). Измените, если нужно:
# /etc/php-fpm.d/www.conf
# user = nginx
# group = nginxПерезапустите PHP‑FPM:
sudo systemctl restart php-fpm.serviceШаг 6 — Завершение установки Pagekit через веб‑интерфейс
Откройте сайт в браузере — вы увидите веб‑установщик Pagekit:

Выберите язык и нажмите “Next” (Далее):

Выберите исход базы данных (SQLite или MySQL/MariaDB) и заполните поля подключения, затем нажмите “Next”:

После этого настройте сайт — укажите заголовок и создайте администратора:

После завершения установки вы будете перенаправлены на страницу входа. Введите имя пользователя и пароль, чтобы попасть в панель администратора:

Если установка прошла успешно — поздравляю, ваш Pagekit сайт готов!
Критерии приёмки
- Веб‑страница по вашему домену загружается без ошибок 5xx.
- Страница установки Pagekit открывается и позволяет заполнить данные БД.
- После завершения установки доступна админ‑панель и можно войти под админом.
- Если включён HTTPS — сертификат валиден и цепочка полная (no mixed content).
Проверьте логи при ошибках:
- NGINX: /var/log/nginx/error.log
- PHP‑FPM: /var/log/php-fpm/www-error.log (или системный journalctl)
- MariaDB: /var/log/mariadb/mariadb.log
Рекомендации по безопасности и эксплуатации
- Регулярно обновляйте систему и пакеты: sudo dnf upgrade -y.
- Делайте резервные копии базы данных и каталога /var/www/pagekit.
- Ограничьте доступ к файлам конфигурации и приватным ключам (chmod 600 для private.key).
- По возможности включите SELinux и настройте контексты для /var/www/pagekit (или используйте permissive, если тестируете).
Важно: при использовании SELinux могут потребоваться дополнительные настройки контекстов для NGINX и PHP‑FPM.
Альтернативные подходы и советы
- Если вы предпочитаете Apache, вместо NGINX можно использовать Apache + mod_php или PHP‑FPM через модуль proxy_fcgi.
- Для быстрой установки можно выбрать SQLite (файл БД), когда не нужна масштабируемость MySQL/MariaDB.
- Вместо acme.sh можно использовать certbot (официальный клиент Let’s Encrypt). acme.sh проще в средах без Python.
- Для кэширования и производительности рассмотрите использование Redis/OPcache и CDN.
Модель принятия решений (короткий чеклист)
- Нужна ли вам отдельная СУБД? Если да — выбирайте MariaDB/MySQL. Если нет — SQLite.
- Требуется HTTPS? Если да — автоматизируйте через acme.sh или certbot.
- Планируется ли высокая нагрузка? Если да — настройте OPcache, кеширование, балансировщик.
Роли и обязанности (кратко)
- DevOps/Системный администратор: установка ОС, веб‑сервера, БД, SSL, бэкапы.
- Веб‑разработчик: тема, плагины, кастомизация Pagekit.
- Администратор контента: наполнение сайта, управление пользователями.
Краткий глоссарий (одной строкой)
- PHP‑FPM — менеджер процессов PHP, обеспечивающий интеграцию с NGINX.
- acme.sh — shell‑клиент для получения сертификатов Let’s Encrypt.
- Let’s Encrypt — бесплатный центр сертификации для автоматического TLS.
Тесты и приёмо‑сдаточные сценарии
- Откройте главную страницу: HTTP 200 и корректный HTML.
- Зайдите в админку под учётной записью администратора.
- Загрузка страниц без ошибок PHP (проверить логи).
- При HTTPS — проверить сертификат в браузере и chain.
Частые проблемы и решения
- 502 Bad Gateway: проверьте, работает ли php-fpm и совпадает ли путь к сокету в конфигурации NGINX.
- Ошибки подключения к БД: проверьте учётные данные и права пользователя в MariaDB. Убедитесь, что хост и порт указаны верно.
- Права на файлы: убедитесь, что директорий /var/www/pagekit принадлежит nginx (или пользователю веб‑процесса).
Ссылки
Резюме
- Pagekit легко установить на Fedora 29, если установить PHP 7.2+, настроить MariaDB и NGINX.
- HTTPS по желанию можно получить с помощью acme.sh/Let’s Encrypt.
- Проверьте права, владельцев и логи при возникновении проблем.
Если потребуется, могу подготовить готовый systemd‑unit, SELinux‑правила и пример playbook Ansible для автоматической установки.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента