How to Install Concrete5 on Ubuntu 16.04

r00t January 26, 2018

Install Concrete5 on Ubuntu 16.04

In this tutorial we’ll learn how to install Concrete5 on Ubuntu 16.04. We will also install and configure its prerequisites. Concrete5 is a free and open source Content Management System (CMS). It is an easy to use, but yet powerful tool allowing users with no technical skills to build different types of websites. Concrete5 features in-context editing (the ability to edit website content directly on the page, rather than in an administrative interface or using web editor software).

I recommend to use a minimal Ubuntu server setup as a basis for the tutorial, that can be a virtual or a root server image with an Ubuntu 16.04 minimal install from a web hosting company or you use our minimal server tutorial to install a server from scratch.

Install Concrete5 on Ubuntu 16.04

Step 1. First, ensure your system and apt package lists are fully up-to-date by running the following:

apt-get update -y
apt-get upgrade -y

Step 2. Installing LAMP on Ubuntu 16.04.

You should check out this LAMP stack install tutorial for Ubuntu 16.04, if you haven’t installed LAMP yet. Once it’s installed, come back here and read on. We also will install the required packages for LAMP stack and the important PHP extension that Concrete5 relies on:

apt-get install php7.0-mysql php7.0-curl php7.0-json php7.0-cgi php7.0 libapache2-mod-php7.0 php7.0-mcrypt php7.0-gd php7.0-mbstring php7.0-zip php7.0-dom php7.0-xml

Step 3. Installing Concrete5.

First, download the Concrete5 archive from the official website:

cd /var/www/html
wget https://www.concrete5.org/download_file/-/view/99963/ -O concrete5.zip
mv concrete5-8.3.1/ concrete5

Now just set the right permissions for the folders:

chown -R www-data:www-data concrete5/

Step 4. Create a database for Concrete5.

Next, we need to create a database for the Concrete5 installation:

mysql -uroot -p

Run the following command to create a database for Concrete5:

MariaDB> CREATE DATABASE concrete5;
MariaDB> GRANT ALL PRIVILEGES ON concrete5.* TO 'concrete5usr'@'localhost' IDENTIFIED BY 'PASSWORD';
MariaDB> FLUSH PRIVILEGES;
MariaDB> exit

Step 5. Configure Apache web server for Concrete5.

For this you can take the default config as a template:

cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/concrete5.conf

Now edit the currently created Config as follows:

nano /etc/apache2/sites-available/concrete5.conf

Modify the virtual host file for your Concrete5 site to resemble the example below:

<VirtualHost my-domain.tld:80>

ServerName my-domain.tld
ServerAlias www.my-domain.tld
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/concrete5/

<Directory /var/www/html/concrete5/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error-moodle.log
CustomLog ${APACHE_LOG_DIR}/access-moodle.log combined
</VirtualHost>

Now just activate the newly created Config, mod_rewrite and SSL:

sudo a2ensite concrete5.conf && sudo a2enmod SSL && sudo a2enmod rewrite

Finally, reload the web server as suggested, for the changes to take effect:

systemctl restart apache2

Step 6. Accessing Concrete5.

You can now complete the installation with the Concrete5 web interface. Open your web browser and navigate to http://{your-server-ip} to launch the installer. During the installation you will be asked for your MySQL parameters. Use the username, password and database name you created in Step 4.

Congratulation’s! You have successfully install and configured Concrete5 on your Ubuntu 16.04 LTS server. Thanks for using this tutorial for installing Concrete5 content management system on Ubuntu 16.04 LTS (Xenial Xerus) system.

The Tags:

Leave a Comment

Comments are closed.