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

Установка Cachet (PHP, Nginx, MariaDB) на Fedora 29

• 5 min read • DevOps • Обновлено 17 Nov 2025
Установка Cachet на Fedora 29 — Nginx, PHP, MariaDB
Установка Cachet на Fedora 29 — Nginx, PHP, MariaDB

TL;DR

Cachet — это открытая система статус-страниц на PHP. В этом руководстве показано пошагово, как установить Cachet на Fedora 29 с Nginx, PHP-FPM, MariaDB и Composer. Вы получите работающую статус-страницу с HTTPS, инструкциями по настройке и контрольными списками для проверки приёмки.

Что такое Cachet

Cachet — лёгкая система статус-страниц и оповещений. Коротко: веб‑приложение на PHP с REST API, уведомлениями подписчикам и панелью администратора.

Важно: впереди много команд и правок конфигурации. Выполняйте шаги под пользователем с sudo.

Требования

  • PHP 7.1 или выше
  • HTTP‑сервер с поддержкой PHP (Nginx, Apache или Caddy)
  • Composer — менеджер зависимостей PHP
  • Поддерживаемая СУБД: MySQL/MariaDB, PostgreSQL или SQLite
  • Git
  • Fedora 29 и непользователь root с правами sudo

Подготовка системы

Проверьте версию Fedora:

cat /etc/fedora-release  
# Fedora release 29 (Twenty Nine)

Установите часовой пояс (пример):

timedatectl list-timezones  
sudo timedatectl set-timezone 'Region/City'

Обновите пакеты:

sudo dnf check-upgrade || sudo dnf upgrade -y

Установите утилиты:

sudo dnf install -y curl wget vim git unzip socat bash-completion

Шаг 1 — установка PHP и расширений

Установите PHP и необходимые расширения:

sudo dnf install -y php-cli php-fpm php-common php-xml php-gd php-zip php-mbstring php-mysqlnd php-pgsql php-sqlite3 php-opcache php-apcu php-json

Проверьте загруженные модули PHP:

php -m  
  
ctype  
curl  
exif  
fileinfo  
. . .  
. . .

Проверьте версию PHP:

php --version

Запустите и включите PHP-FPM:

sudo systemctl start php-fpm.service  
sudo systemctl enable php-fpm.service

Шаг 2 — установка MariaDB и создание базы данных

Cachet поддерживает MySQL/MariaDB, PostgreSQL и SQLite. Здесь используем MariaDB.

Установите сервер:

sudo dnf install -y mysql-server

Проверьте версию MariaDB:

mysql --version  

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

sudo systemctl start mariadb.service  
sudo systemctl enable mariadb.service

Усилите безопасность и задайте пароль root:

sudo mysql_secure_installation

Ответьте на вопросы скрипта (примерные ответы):

Would you like to setup VALIDATE PASSWORD plugin? N  
New password: your_secure_password  
Re-enter new password: your_secure_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 как root и создайте базу и пользователя:

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 (опционально)

TLS не обязателен, но настоятельно рекомендуется. В этом руководстве используется acme.sh — простой клиент на shell.

Установка 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  
# v2.8.0

Запрос сертификатов RSA и ECDSA (пример):

# RSA 2048  
acme.sh --issue --standalone -d example.com --keylength 2048  
# ECDSA  
acme.sh --issue --standalone -d example.com --keylength ec-256

Для тестирования используйте –staging.

Сертификаты будут в директориях пользователя:

  • RSA: /home/username/example.com
  • ECC: /home/username/example.com_ecc

Скопируйте или установите сертификаты в /etc/letsencrypt (пример команд в исходном руководстве).

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 автоматически обновляет по своему расписанию.

Вернитесь к непользователю root:

exit

Шаг 4 — установка и настройка Nginx

Мы используем Nginx, но Cachet работает и с Apache. Установка:

sudo dnf install -y nginx

Проверка версии и запуск:

sudo nginx -v  
sudo systemctl start nginx.service  
sudo systemctl enable nginx.service

Создайте файл конфигурации Nginx:

sudo vim /etc/nginx/conf.d/cachet.conf

Пример содержимого файла (проверьте пути к сертификатам и сокету PHP-FPM):

server {  
  
  listen 80;  
  listen [::]:80;  
  listen 443 ssl;  
  listen [::]:443 ssl;  
  
  server_name status.example.com;  
  
  root /var/www/cachet/public;  
  
  index index.php;  
  
  ssl_certificate /etc/letsencrypt/status.example.com/fullchain.cer;  
  ssl_certificate_key /etc/letsencrypt/status.example.com/status.example.com.key;  
  ssl_certificate /etc/letsencrypt/status.example.com_ecc/fullchain.cer;  
  ssl_certificate_key /etc/letsencrypt/status.example.com_ecc/status.example.com.key;  
  
  location / {  
    try_files $uri /index.php$is_args$args;  
  }  
  
  location ~ \.php$ {  
    include fastcgi_params;  
    fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;  
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;  
    fastcgi_index index.php;  
    fastcgi_keep_conn on;  
  }  
  
}

Проверьте конфигурацию и перезагрузите Nginx:

sudo nginx -t
sudo systemctl reload nginx.service

Примечание: укажите правильный сокет PHP-FPM (например, /var/run/php-fpm/www.sock или /var/run/php/php7.2-fpm.sock), в зависимости от пакета в вашей системе.

Шаг 5 — установка Composer

Установите Composer глобально:

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"  
  
php -r "if (hash_file('sha384', 'composer-setup.php') === '48e3236262b34d30969dca3c37281b3b4bbe3221bda826ac6a9a62d6444cdb0dcd0615698a5cbe587c3f0fe57a54d8f5') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"  
  
php composer-setup.php  
  
php -r "unlink('composer-setup.php');"  
  
sudo mv composer.phar /usr/local/bin/composer

Проверьте версию:

composer --version  
# Composer version 1.8.4 2019-02-11 10:52:10

Шаг 6 — установка Cachet

Создайте директорию для сайта и назначьте владельца:

sudo mkdir -p /var/www/cachet  
sudo chown -R {your_user}:{your_user} /var/www/cachet

Перейдите в директорию и клонируйте Cachet:

cd /var/www/cachet

git clone -b 2.4 --single-branch https://github.com/cachethq/Cachet.git .

Скопируйте пример окружения и отредактируйте .env (укажите параметры базы и APP_URL):

cp .env.example .env  
vim .env

Установите зависимости Composer без dev-пакетов:

composer install --no-dev -o

Сгенерируйте ключ приложения и выполните инсталлятор Cachet:

php artisan key:generate
php artisan cachet:install

Установите права и пользователя PHP-FPM (в примере — nginx):

sudo chown -R nginx:nginx /var/www/cachet

Отредактируйте /etc/php-fpm.d/www.conf и установите user и group в nginx (если это актуально для вашей сборки):

sudo vim /etc/php-fpm.d/www.conf
# user = nginx
# group = nginx

Откройте сайт в браузере и завершите установку через веб‑интерфейс.

Шаг 7 — завершение установки через веб‑интерфейс

Выберите драйверы кеша и сессий. Настройте почту для уведомлений, если планируете рассылки.

Завершение настройки Cachet

Настройте общие параметры сайта: имя, домен, часовой пояс и язык.

Общие настройки Cachet

Создайте учётную запись администратора через интерфейс.

Добавление администратора

После удачной установки вы увидите сообщение и сможете перейти на панель управления.

Успешная установка Cachet

Панель доступна по URL: https://ваш-домен/dashboard

Панель Cachet

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

  • Страница статуса отвечает по HTTPS и по HTTP (при редиректе)
  • Веб‑панель /dashboard доступна и позволяет создать админа
  • События создаются и отображаются в интерфейсе
  • Уведомления по почте отправляются (если настроено)
  • Бэкапы БД выполняются по расписанию

Руководство по откату (runbook)

  1. Если после обновления Cachet сайт упал — переключите Nginx на страницу обслуживания (maintenance).
  2. Остановите фоновые задачи и очереди: php artisan queue:restart
  3. Восстановите резервную копию .env и базы данных.
  4. Верните прежнюю версию кода из Git: git checkout и выполните composer install
  5. Перезапустите PHP-FPM и Nginx.

Проверка и тесты приёмки

  • Откройте / и /dashboard — получаете 200
  • Имитация события: создайте инцидент в панели — он должен появиться публично
  • Подпись электронной почты: отправьте тестовое письмо из настроек почты

Роль‑ориентированные контрольные списки

  • DevOps: установка PHP‑FPM, Nginx, SSL, права на файлы, автозапуск сервисов
  • DBA: создание и бэкап БД, проверка привилегий пользователя
  • Админ приложения: настройка .env, создание администратора, проверка уведомлений
  • Служба поддержки: тесты подписки и получения уведомлений

Безопасность и рекомендации

  • Всегда используйте HTTPS и HSTS.
  • Не храните секреты в репозитории — .env должен быть приватным.
  • Регулярно обновляйте PHP и зависимости через Composer.
  • Ограничьте доступ к /dashboard по IP, если возможно.
  • Включите двухфакторную авторизацию для администраторов (если доступно).

Частые ошибки и исправления

  • 502 Bad Gateway: проверьте, что PHP-FPM запущен и сокет указан правильно.
  • Ошибки миграции: проверьте права пользователя БД и переменные окружения в .env.
  • Проблемы с отправкой почты: проверьте SMTP‑настройки и логи почтового драйвера.

Факт‑бокс (ключовые цифры)

  • Минимальные требования: PHP >= 7.1, один веб‑сервер, одна СУБД
  • Поддерживаемые СУБД: MySQL/MariaDB, PostgreSQL, SQLite
  • Рекомендуемая практика: HTTPS и регулярные бэкапы

Небольшая методология установки (шаблон действий)

  1. Подготовка ОС и зависимостей (обновление, утилиты).
  2. Установка и настройка СУБД.
  3. SSL — получить сертификаты.
  4. Установка PHP и Nginx.
  5. Установка Composer и зависимостей Cachet.
  6. Настройка прав и запуск приложения.
  7. Тестирование и приёмка.

Глоссарий (1‑строчные определения)

  • Cachet: система статус-страниц и оповещений на PHP.
  • PHP-FPM: менеджер процессов PHP для веб‑серверов.
  • Composer: менеджер зависимостей PHP.
  • Let’s Encrypt: бесплатный центр сертификации для TLS.

Совет эксперта

«Хорошая статус‑страница снижает нагрузку на поддержку и повышает прозрачность для пользователей», — практический вывод многих инженеров.

Ссылки

Примечание: если вы используете другую версию Fedora или другой стек (Apache, PostgreSQL), адаптируйте команды и пути согласно вашей системе.

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