Cachet - это система страниц с открытым исходным кодом, написанная на PHP. Исходный код Cachet размещен в этом репозитории Github . В этой статье мы рассмотрим процесс установки Cachet на Fedora 28, используя программный стек PHP, MariaDB и Nginx.
Требования
	- Гит
- PHP версия 5.5.9 или выше
- HTTP-сервер с поддержкой PHP (например, Apache, Nginx, Caddy). Это руководство будет использовать Nginx .
- Поддерживаемая база данных: MySQL / MariaDB, PostgreSQL или SQLite. Это руководство будет использовать MariaDB .
- Композитор
Прежде чем вы начнете
Проверьте версию Fedora.
cat /etc/fedora-release
# Fedora release 28 (Twenty Eight)
Создайте новую учетную запись пользователя без полномочий rootsudo и перейдите на нее.
useradd -c "John Doe" johndoe && passwd johndoe
usermod -aG wheel johndoe
su - johndoe
ПРИМЕЧАНИЕ.  Замените johndoeна свое имя пользователя.
Убедитесь, что ваша система обновлена.
sudo dnf check-upgrade || sudo dnf upgrade -y
Установите часовой пояс.
timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'
Установите необходимые пакеты.
sudo dnf install -y curl git wget vim unzip bash-completion
Для простоты отключите SELinux и FirewallD. Вы можете повторно включить FirewallD при необходимости.
sudo setenforce 0 ; sudo systemctl stop firewalld ; sudo systemctl disable firewalld
Установить PHP
Установите 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-mcrypt php-pecl-apcu php-pdo php-json
Проверьте версию.
php --version
# PHP 7.2.8 (cli) (built: Jul 17 2018 05:35:43) ( NTS )
Запустите и включите службу PHP-FPM.
sudo systemctl start php-fpm.service
sudo systemctl enable php-fpm.service
Установите MariaDB и создайте базу данных
Установите сервер базы данных MariaDB.
sudo dnf install -y mariadb-server
Проверьте версию.
mysql --version
# mysql  Ver 15.1 Distrib 10.2.16-MariaDB, for Linux (x86_64) using readline 5.1
Запустите и включите сервис MariaDB.
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service
Запустите mysql_secure_installation для повышения безопасности MySQL и установите пароль для rootпользователя MariaDB .
sudo mysql_secure_installation
Подключитесь к оболочке MariaDB от имени пользователя root.
mysql -u root -p
# Enter password:
Создайте пустую базу данных MariaDB и пользователя для Cachet и запомните учетные данные.
CREATE DATABASE dbname;
GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
EXIT
Установите Nginx.
sudo dnf install -y nginx
Проверьте версию.
nginx -v
# nginx version: nginx/1.12.1
Запустите и включите службу Nginx.
sudo systemctl start nginx.service
sudo systemctl enable nginx.service
Настройте Nginx. Запустите sudo vim /etc/nginx/conf.d/cachet.confи заполните файл следующей конфигурацией.
server {
  listen 80;
  listen [::]:80;
  server_name status.example.com; # Check this
  root /var/www/cachet/public; # Check this
  index index.php;
  location / {
    try_files $uri /index.php$is_args$args;
  }
  location ~ \.php$ {
    include fastcgi_params;
    fastcgi_pass unix:/run/php-fpm/www.sock; # Check this
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_index index.php;
    fastcgi_keep_conn on;
  }
}
Проверьте конфигурацию Nginx.
sudo nginx -t
Перезагрузить Nginx.
sudo systemctl reload nginx.service
Установите Composer
Установите Composer глобально.
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { 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.7.2 2018-08-16 16:57:12
Установить Cachet
Создайте корневой каталог документа.
sudo mkdir -p /var/www/cachet
Изменить владельца /var/www/cachetкаталога на johndoe.
sudo chown -R johndoe:johndoe /var/www/cachet
Загрузите исходный код Cachet с помощью Git и оформите последнюю версию с тегами .
cd /var/www/cachet
git clone -b 2.4 --single-branch https://github.com/cachethq/Cachet.git .
Копировать .env.exampleв .envи настроить сервер базы данных и APP_URLнастройки в .envфайле.
cp .env.example .env
vim .env
Установите зависимости с помощью Composer.
composer install --no-dev -o
Установите ключ приложения.
php artisan key:generate
Установите Cachet.
php artisan cachet:install
Изменить владельца /var/www/cachetкаталога на nginx.
sudo chown -R nginx:nginx /var/www/cachet
Запустите sudo vim /etc/php-fpm.d/www.confи установите пользователя и группу в nginx. Первоначально он будет установлен для пользователя и группы apache.
sudo vim /etc/php-fpm.d/www.conf
# user = nginx
# group = nginx
Перезапустите сервис PHP-FPM.
sudo systemctl restart php-fpm.service
Откройте свой сайт в веб-браузере и следуйте инструкциям на экране, чтобы завершить установку Cachet. Чтобы получить доступ к панели управления Cachet, добавьте /dashboardURL своего веб-сайта.