How to Install e107 CMS on Ubuntu 20.04

Updated on March 1, 2022
How to Install e107 CMS on Ubuntu 20.04 header image

Introduction

e107 is an open-source Content Management System (CMS) powered by PHP used to create and manage a website's content with little or no knowledge of coding languages. It's responsive and user-friendly, hence used on different devices. e107 CMS offers many features. Some of them are:

  • SEO features like search engine and human-friendly URLs, search engine crawler ping utilities, meta content generator.
  • System caching with whole-site search.
  • Multi-site configuration that is accessible from a single location.
  • Multi-lingual support.
  • Plugin builder using third-party library APIs.
  • RSS and Atom feeds.
  • Database management tools for imports and exports.
  • Migration tools for other popular CMSs.

This article explains how to install e107 CMS on Ubuntu 20.04 server.

Prerequisites

1. Install Required Packages

Update system package list.

$ sudo apt update

Install PHP 7.4 and more modules.

$ sudo apt install apache2 mysql-server php7.4 libapache2-mod-php7.4 php7.4-json php7.4-common php7.4-gmp php7.4-curl php7.4-mysql php7.4-opcache php7.4-intl php7.4-fpm php7.4-xmlrpc php7.4-bcmath php7.4-zip php7.4-imagick php7.4-mbstring php7.4-gd php7.4-cli php7.4-xml php7.4-zip wget unzip curl -y

Edit the PHP configuration file.

$ sudo nano /etc/php/7.4/apache2/php.ini

Change the following values. To search for a specific line, use Control+W, enter search phrase then press Enter.

memory_limit = 256M
max_execution_time = 360
upload_max_filesize = 100M
post_max_size = 100M

Restart Apache2 service for all changes made to take effect.

$ sudo systemctl restart apache2

2. Create e107 CMS Database

Run mysql_secure installation script to secure MySQL database server from security breaches.

$ sudo mysql_secure_installation

When prompted, answer the questions as shown below:

  • Setup VALIDATE PASSWORD plugin? Press N, then Enter.
  • Remove anonymous users? Press Y, then Enter.
  • Disallow root login remotely? Press Y, then Enter.
  • Remove test database and access to it? Press Y, then Enter.
  • Reload privilege tables now? Press Y, then Enter.

Log in to MySQL shell. At the password prompt, enter your password to continue.

$ sudo mysql -u root -p

Create a database called e107cms.

CREATE DATABASE e107cms;

Create a database user called e107cmsuser with a password StrongPassword. Then, change StrongPassword to your secure password.

CREATE USER 'e107cmsuser'@'localhost' IDENTIFIED BY 'StrongPassword';

Grant the user full access to the database.

GRANT ALL ON e107cms.* TO 'e107cmsuser'@'localhost' WITH GRANT OPTION;

Save the changes made to the database.

FLUSH PRIVILEGES;

Exit MySQL shell.

exit;

3. Install e107 CMS

Download the latest stable version of GrandCMS. To find the versions available, please visit the download page.

$ wget http://sourceforge.net/projects/e107/files/e107/e107%20v2.3.1/e107_2.3.1_full.zip

Create installation directory /var/www/e107cms.

$ sudo mkdir -p /var/www/e107cms

Extract the downloaded archive to the installation directory.

$ sudo unzip e107_2.3.1_full.zip -d /var/www/e107cms

Change ownership of the installation directory.

$ sudo chown -R www-data:www-data /var/www/e107cms

Change access permissions for the directory.

$ sudo chmod -R 755 /var/www/e107cms

4. Configure Apache2

Enable port 80 through the firewall.

$ sudo ufw allow 80

Create Apache configuration file for e107 CMS.

$ sudo nano /etc/apache2/sites-available/e107cms.conf

Add the following block of code to the file. Then, save and close the file:

<VirtualHost *:80>

    ServerAdmin admin@example.com
    DocumentRoot /var/www/e107cms
    ServerName example.com
    ServerAlias www.example.com

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

     ErrorLog ${APACHE_LOG_DIR}/error.log
     CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Enable the new Apache configuration file.

$ sudo a2ensite e107cms.conf

Disable Apache default configuration file.

$ sudo a2dissite 000-default.conf

Enable Apache rewrite mode.

$ sudo a2enmod rewrite

Restart Apache service.

$ sudo systemctl restart apache2

5. Access e107 CMS Web Interface

To access the e107 CMS Web Interface, go to your browser and visit http://Server_IP/. For example:

http://192.0.2.10/

Conclusion

You have installed e107 CMS on your Ubuntu 20.04 server. Go through the installation process to connect to your database, and create an administrator account. You can now log in to the admin area and manage the website content.

More Information

To learn more about e107 CMS, go to the official website page.