Using a Different System?
-
How to Install Cachet on Ubuntu 16.04 LTS
-
How to Install Cachet on CentOS 7
-
How to Install Cachet on FreeBSD 11
-
How to Install Cachet on Debian 10
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 $300 by adding new articles
Suggest an update
Request an article