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 Rcs 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 - johndoeNOTE: 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 updateInstall the needed packages.
sudo yum install -y socat git wget unzip epel-releaseDisable SELinux and Firewall.
sudo setenforce 0 ; sudo systemctl stop firewalld ; sudo systemctl disable firewalldInstall PHP
Setup the Webtatic YUM repo.
sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpmDownload and install PHP.
sudo yum install -y php72w php72w-cli php72w-fpm php72w-mysqlnd php72w-commonCheck the version.
php --versionStart and enable PHP-FPM service.
sudo systemctl start php-fpm.service
sudo systemctl enable php-fpm.serviceInstall 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=1Install the MariaDB database server.
sudo yum install -y MariaDB-server MariaDB-clientCheck 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.serviceRun the mysql_secure_installation script to improve the security of your MariaDB installation.
sudo mysql_secure_installationLog 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;
quitNOTE: Replace dbname and username with appropriate names for your setup. Replace password with a strong password.
Install Nginx
Install Nginx.
sudo yum install -y nginxCheck the version.
nginx -vStart and enable Nginx.
sudo systemctl start nginx.service
sudo systemctl enable nginx.serviceConfigure 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 -tReload Nginx.
sudo systemctl reload nginx.serviceInstall Fuel CMS
Create the document root directory.
sudo mkdir -p /var/www/fuelChange ownership of the /var/www/fuel directory to johndoe.
sudo chown -R johndoe:johndoe /var/www/fuelDownload 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-masterConfigure the fuel/application/config/database.php file with the proper database connection settings.
vim fuel/application/config/database.phpImport the fuel/install/fuel_schema.sql file into the newly created database.
mysql -u username -p password < fuel/install/fuel_schema.sqlNOTE: 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.phpEnable the admin backend by changing $config['admin_enabled'] = FALSE; to TRUE.
vim fuel/application/config/MY_fuel.phpCreate 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/sessionChange ownership of the /var/www/fuel directory to nginx.
sudo chown -R nginx:nginx /var/www/fuelRun 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 = nginxRestart the PHP-FPM service.
sudo systemctl restart php-fpm.serviceUsing 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.