Installing Fuel CMS on CentOS 7
Fuel CMS is a CodeIgniter based content management system. Its source code is hosted on GitHub. This guide will show you how to install Fuel CMS on a fresh CentOS 7 Vultr instance.
Requirements
- Nginx or Apache server with
.htaccess
. This tutorial will use Nginx. - PHP version 5.4 or greater.
- A MySQL 5.0 (or newer) database if using the Fuel admin. Currently, it does not support other databases.
Before you begin
Check the CentOS version.
cat /etc/centos-release
# CentOS Linux release 7.6.1810 (Core)
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 yum update
Install the needed packages.
sudo yum install -y socat git wget unzip epel-release
Disable SELinux and Firewall.
sudo setenforce 0 ; sudo systemctl stop firewalld ; sudo systemctl disable firewalld
Install PHP
Setup the Webtatic YUM repo.
sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Download and install PHP.
sudo yum install -y php72w php72w-cli php72w-fpm php72w-mysqlnd php72w-common
Check the version.
php --version
Start and enable PHP-FPM service.
sudo systemctl start php-fpm.service
sudo systemctl enable php-fpm.service
Install MariaDB
Setup the MariaDB repo. Run sudo vi /etc/yum.repos.d/MariaDB.repo
and populate it with the following text.
[mariadb]
name = MariaDB
baseurl = https://yum.mariadb.org/10.2/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
Install the MariaDB database server.
sudo yum install -y MariaDB-server MariaDB-client
Check the version.
mysql --version && sudo mysqld --version
# mysql Ver 15.1 Distrib 10.2.25-MariaDB, for Linux (x86_64) using readline 5.1
# mysqld Ver 10.2.25-MariaDB for Linux on x86_64 (MariaDB Server)
Start and enable MariaDB.
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service
Run the mysql_secure_installation
script to improve the security of your MariaDB installation.
sudo mysql_secure_installation
Log into MariaDB as the root user.
sudo mysql -u root -p
# Enter password:
Create a new MariaDB database and database user, and remember the credentials.
CREATE DATABASE dbname;
GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
quit
NOTE: Replace dbname
and username
with appropriate names for your setup. Replace password
with a strong password.
Install Nginx
Install Nginx.
sudo yum install -y nginx
Check the version.
nginx -v
Start and enable Nginx.
sudo systemctl start nginx.service
sudo systemctl enable nginx.service
Configure Nginx for Fuel CMS. Run sudo vim /etc/nginx/conf.d/fuel.conf
and populate the file with the following configuration.
server {
listen 80;
root /var/www/fuel;
index index.php index.html index.htm;
server_name example.com;
location / {
try_files $uri $uri/ /index.php?q=$uri&$args;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Test Nginx configuration.
sudo nginx -t
Reload Nginx.
sudo systemctl reload nginx.service
Install Fuel CMS
Create the document root directory.
sudo mkdir -p /var/www/fuel
Change ownership of the /var/www/fuel
directory to johndoe
.
sudo chown -R johndoe:johndoe /var/www/fuel
Download the latest release of Fuel CMS.
cd /var/www/fuel
wget https://github.com/daylightstudio/FUEL-CMS/archive/master.zip
unzip master.zip
rm master.zip
mv FUEL-CMS-master/* .
rm -rf FUEL-CMS-master
Configure the fuel/application/config/database.php
file with the proper database connection settings.
vim fuel/application/config/database.php
Import the fuel/install/fuel_schema.sql
file into the newly created database.
mysql -u username -p password < fuel/install/fuel_schema.sql
NOTE: Replace username
and password
with your database credentials.
Change the $config['encryption_key']
on line 327
found in the fuel/application/config/config.php
file. To generate a random key you can use the openssl
tool.
vim fuel/application/config/config.php
Enable the admin backend by changing $config['admin_enabled'] = FALSE;
to TRUE
.
vim fuel/application/config/MY_fuel.php
Create the /var/lib/php/session
directory and change its ownership to the user nginx
.
sudo mkdir -p /var/lib/php/session && sudo chown -R nginx:nginx /var/lib/php/session
Change ownership of the /var/www/fuel
directory to nginx
.
sudo chown -R nginx:nginx /var/www/fuel
Run sudo vim /etc/php-fpm.d/www.conf
and set the user and group to nginx
. Initially, they will both be set to apache
.
sudo vi /etc/php-fpm.d/www.conf
# user = nginx
# group = nginx
Restart the PHP-FPM service.
sudo systemctl restart php-fpm.service
Using your preferred web browser, open your site and follow the Fuel CMS installer. After following the installer, you will have Fuel CMS up and running. To access the Fuel admin area, append /fuel
to your site URL. Use the following login credentials Username: admin
and Password: admin
. After logging in, you need to change your admin password.