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

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

• 6 min read • Инструкции • Обновлено 24 Nov 2025
Установка Pagekit на Fedora 29 (NGINX + MariaDB)
Установка Pagekit на Fedora 29 (NGINX + MariaDB)

Обложка: логотип Pagekit и скриншот интерфейса

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:

Установщик Pagekit: стартовый экран и стрелка продолжения

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

Выбор языка установки Pagekit

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

Подключение к базе данных Pagekit

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

Настройка сайта и создание администратора Pagekit

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

Вход в админку Pagekit

Если установка прошла успешно — поздравляю, ваш 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 для автоматической установки.

Поделиться: 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 быстро