Article

Table of Contents
Theme:
Was this article helpful?
Try Vultr Today with

$50 Free on Us!

Want to contribute?

You could earn up to $600 by adding new articles.

How to Install Cachet on Fedora 28

Last Updated: Fri, Apr 12, 2019
Fedora Linux Guides PHP Server Apps
Archived content

This article is outdated and may not work correctly for current operating systems or software.

Cachet is an open source status page system written in PHP. The source code of Cachet is hosted in this Github repo. In this article, we will go over the Cachet installation process on Fedora 28 by using the PHP, MariaDB and Nginx software stack.

Requirements

  • Git

  • PHP version 5.5.9 or greater

  • HTTP server with PHP support (eg: Apache, Nginx, Caddy). This guide will use Nginx.

  • A supported database: MySQL/MariaDB, PostgreSQL or SQLite. This guide will use MariaDB.

  • Composer

Before you begin

Check the Fedora version.

cat /etc/fedora-release

# Fedora release 28 (Twenty Eight)

Create a new non-root user account with sudo access and switch to it.

useradd -c "John Doe" johndoe && passwd johndoe

usermod -aG wheel johndoe

su - johndoe

NOTE: Replace johndoe with your username.

Ensure that your system is up to date.

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

Set up the timezone.

timedatectl list-timezones

sudo timedatectl set-timezone 'Region/City'

Install necessary packages.

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

For sake of simplicity, disable SELinux and FirewallD. You may re-enable FirewallD as needed.

sudo setenforce 0 ; sudo systemctl stop firewalld ; sudo systemctl disable firewalld

Install PHP

Install PHP and the required PHP extensions.

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

Check the version.

php --version

# PHP 7.2.8 (cli) (built: Jul 17 2018 05:35:43) ( NTS )

Start and enable the PHP-FPM service.

sudo systemctl start php-fpm.service

sudo systemctl enable php-fpm.service

Install MariaDB and create a database

Install MariaDB database server.

sudo dnf install -y mariadb-server

Check the version.

mysql --version

# mysql  Ver 15.1 Distrib 10.2.16-MariaDB, for Linux (x86_64) using readline 5.1

Start and enable the MariaDB service.

sudo systemctl start mariadb.service

sudo systemctl enable mariadb.service

Run mysql_secure_installation to improve MySQL security and set the password for the MariaDB root user.

sudo mysql_secure_installation

Connect to the MariaDB shell as the root user.

mysql -u root -p

# Enter password:

Create an empty MariaDB database and user for Cachet, and remember the credentials.

CREATE DATABASE dbname;

GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';

FLUSH PRIVILEGES;

EXIT

Install and configure Nginx

Install Nginx.

sudo dnf install -y nginx

Check the version.

nginx -v

# nginx version: nginx/1.12.1

Start and enable the Nginx service.

sudo systemctl start nginx.service

sudo systemctl enable nginx.service

Configure Nginx. Run sudo vim /etc/nginx/conf.d/cachet.conf and populate the file with the following configuration.

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;

  }

}

Test the Nginx configuration.

sudo nginx -t

Reload Nginx.

sudo systemctl reload nginx.service

Install Composer

Install Composer globally.

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

Check the version.

composer --version

# Composer version 1.7.2 2018-08-16 16:57:12

Install Cachet

Create a document root directory.

sudo mkdir -p /var/www/cachet

Change ownership of the /var/www/cachet directory to johndoe.

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

Download the Cachet source code with Git and checkout the latest tagged release.

cd /var/www/cachet

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

Copy .env.example to .env and configure both database and APP_URL settings in the .env file.

cp .env.example .env

vim .env

Install dependencies with Composer.

composer install --no-dev -o

Set the application key.

php artisan key:generate

Install Cachet.

php artisan cachet:install

Change ownership of the /var/www/cachet directory to nginx.

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

Run sudo vim /etc/php-fpm.d/www.conf and set user and group to nginx. Initially, it will be set to user and group apache.

sudo vim /etc/php-fpm.d/www.conf

# user = nginx

# group = nginx

Restart PHP-FPM service.

sudo systemctl restart php-fpm.service

Open your site in a web browser and follow the instructions on the screen to finish the Cachet installation. To access the Cachet dashboard, append /dashboard to your website URL.

Want to contribute?

You could earn up to $600 by adding new articles.