Learn How To Install Automad CMS on Fedora 30

May 21, 2019

Table of Contents

If you are using a different system, please check our other tutorials.

Automad is an open source file-based content management system (CMS) and template engine written in PHP. The Automad source code is hosted on Bitbucket. This guide will show you how to install Automad CMS on a Fedora 30 IT Web Services instance.

Requirements

  • PHP version 5.4 or higher.
  • Web server software. In this guide, we use Nginx.

Before you begin

Check the Fedora version.

cat /etc/fedora-release
# Fedora release 30 (Thirty)

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.

Set up the timezone.

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

Ensure that your system is up to date.

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

Install the needed packages.

sudo dnf install -y socat git

Disable SELinux and Firewall.

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

Install PHP

Install PHP, as well as the necessary PHP extensions.

sudo dnf install -y php-cli php-fpm php-common php-mbstring php-xmlrpc php-soap php-gd php-xml php-curl php-zip php-json

Check the version.

php --version
# PHP 7.3.6 (cli) (built: May 28 2019 09:32:59) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.3.6, Copyright (c) 1998-2018 Zend Technologies

Start and enable PHP-FPM service.

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

Install Nginx

Install Nginx.

sudo dnf install -y nginx

Check the version.

nginx -v
# nginx version: nginx/1.16.0

Start and enable Nginx.

sudo systemctl start nginx.service
sudo systemctl enable nginx.service

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

server {
  listen 80;
  server_name example.com;
  root /var/www/automad;
  index index.php index.html;
  client_max_body_size 100M;
  location / {
    try_files $uri $uri/ /index.php$is_args$args;
  }
  location ~ .php$ {
    fastcgi_index index.php;
    fastcgi_pass unix:/run/php-fpm/www.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
  }
}

Test the configuration.

sudo nginx -t

Reload Nginx.

sudo systemctl reload nginx.service

Install Automad

Create a document root directory.

sudo mkdir -p /var/www/automad

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

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

Navigate to the document root.

cd /var/www/automad

Using curl download the latest release of Automad CMS. Don’t forget to bump up the version numbers if there is a newer release.

curl -O -J -L https://automad.org/download

Uncompress the zip archive.

unzip marcantondahmen-automad-6fff2a0456dc.zip

Move all Automad files to the document root and remove zip archive.

mv marcantondahmen-automad-6fff2a0456dc/* . && mv marcantondahmen-automad-6fff2a0456dc/.* .
rm marcantondahmen-automad-6fff2a0456dc.zip
rmdir marcantondahmen-automad-6fff2a0456dc

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

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

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

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

Restart the PHP-FPM service.

sudo systemctl restart php-fpm.service

As the last step, create a user account to use the browser-based user interface called the Dashboard. Therefore navigate to https://yoursite.com/dashboard and follow the instructions.

Need help?

Do you need help setting up this on your own service?
Please contact us and we’ll provide you the best possible quote!