Step-by-Step Guide to Installing Fuel CMS on Ubuntu 18.04 LTS

Fuel CMS is a robust, open-source content management system engineered in PHP, perfect for crafting dynamic websites and blogs. Harnessing the power of the CodeIgniter PHP web framework, it provides a foundation for advanced web development projects.

Fuel CMS boasts an array of powerful features, including:

  • Support for multiple languages, enabling SEO-friendly page content creation in any language.
  • Easy editing of page data to see real-time results.
  • Efficient management and uploading of site images, PDFs, stylesheets, and JavaScript.
  • User-friendly form creation for layout variables to facilitate page building.

This guide will walk you through installing Fuel CMS on an Ubuntu 18.04 system.

Prerequisites

  • An Ubuntu 18.04 server.
  • A non-root user with sudo privileges.

Install LAMP Server

Fuel CMS requires a LAMP stack (Linux, Apache, MySQL/MariaDB, and PHP). Begin by installing Apache and MariaDB:

sudo apt-get install apache2 mariadb-server -y

Starting and enabling Apache and MariaDB to load at boot time:

sudo systemctl start apache2
sudo systemctl enable apache2
sudo systemctl start mysql
sudo systemctl enable mysql

Next, install PHP 7.1, as it’s not included by default on Ubuntu 18.04. Begin by adding the Ondrej PHP repository:

sudo apt-get install software-properties-common -y
sudo add-apt-repository ppa:ondrej/php

After adding the repository, update the package list and install PHP 7.1:

sudo apt-get update -y
sudo apt-get install php7.1 libapache2-mod-php7.1 php7.1-gd php7.1-xml php7.1-cli php7.1-zip php7.1-common php7.1-sqlite3 php7.1-mcrypt php7.1-curl php7.1-intl php7.1-mbstring php7.1-xmlrpc php7.1-mysql -y

After installation, modify the php.ini file:

sudo nano /etc/php/7.1/apache2/php.ini

Apply the following changes:

file_uploads = On
allow_url_fopen = On
short_open_tag = On
memory_limit = 256M
upload_max_filesize = 120M
max_execution_time = 300
date.timezone = Your/Region

Configure MariaDB

Secure the fresh MariaDB installation:

sudo mysql_secure_installation

Respond to the prompts as follows:

Enter current password for root (enter for none): 
Set root password? [Y/n]: N
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

Create a database and user for Fuel CMS:

mysql -u root -p

Upon prompting, execute:

MariaDB [(none)]> CREATE DATABASE fuelcmsdb;
MariaDB [(none)]> CREATE USER 'fueluser'@'localhost' IDENTIFIED BY 'password';
MariaDB [(none)]> GRANT ALL ON fuelcmsdb.* TO 'fueluser'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit

Install Fuel CMS

Retrieve the latest Fuel CMS version from GitHub:

wget https://github.com/daylightstudio/FUEL-CMS/archive/master.zip

Unzip and place it within the web root directory:

unzip master.zip
sudo cp -r FUEL-CMS-master /var/www/html/fuelcms

Assign the correct permissions:

sudo chown -R www-data:www-data /var/www/html/fuelcms/
sudo chmod -R 755 /var/www/html/fuelcms/

Create an Apache virtual host configuration:

sudo nano /etc/apache2/sites-available/fuelcms.conf

Include the following:

<VirtualHost *:80>
     ServerAdmin admin@example.com
     DocumentRoot /var/www/html/fuelcms
     ServerName example.com

     <Directory /var/www/html/fuelcms/>
          Options FollowSymlinks
          AllowOverride All
          Require all granted
     </Directory>

     ErrorLog ${APACHE_LOG_DIR}/fuelcms_error.log
     CustomLog ${APACHE_LOG_DIR}/fuelcms_access.log combined
</VirtualHost>

Enable the virtual host and mod_rewrite module, then restart Apache:

sudo a2ensite fuelcms
sudo a2enmod rewrite
sudo systemctl restart apache2

Import the database schema and configure database access:

sudo mysql -u fueluser -p fuelcmsdb < /var/www/html/fuelcms/fuel/install/fuel_schema.sql
sudo nano /var/www/html/fuelcms/fuel/application/config/database.php

Edit the following:

$db['default'] = array(
    'dsn'   => '',
    'hostname' => 'localhost',
    'username' => 'fueluser',
    'password' => 'password',
    'database' => 'fuelcmsdb',
    'dbdriver' => 'mysqli',
    'dbprefix' => '',
);

Generate a random encryption key with OpenSSL:

openssl rand -base64 20

Next, update the config.php file:

sudo nano /var/www/html/fuelcms/fuel/application/config/config.php

Add the generated key:

$config['encryption_key'] = 'your_generated_key';

Lastly, ensure the admin is enabled in MY_fuel.php:

sudo nano /var/www/html/fuelcms/fuel/application/config/MY_fuel.php

Modify these lines:

// whether the admin backend is enabled or not
$config['admin_enabled'] = TRUE;
$config['fuel_mode'] = 'AUTO';

Access Fuel CMS

Fuel CMS is now ready. Access it through your browser at http://example.com/fuel.

Login to Fuel CMS

Log in with username: admin and password: admin. Upon success, you’ll see the dashboard:

FuelCMS Dashboard

Helpful Links

Frequently Asked Questions (FAQ)

  • Is Fuel CMS free to use?
    Yes, Fuel CMS is free and open-source software.
  • What languages does Fuel CMS support?
    Fuel CMS supports multiple languages, making it versatile for creating multilingual content.
  • How do I reset the admin password?
    You can reset the admin password by accessing the database and updating the appropriate user record in the users table.
  • Where can I find additional support for Fuel CMS?
    For more support, visit the official forums or consult the documentation.