27 C
Senior Writer and partner

Install Concrete CMS on Ubuntu 20.04

Hello, friends. In this post, you will learn how to install Concrete CMS on Ubuntu 20.04 so you will have another option when choosing the CMS for your website.

Introducing to Concrete CMS

It is an open-source CMS, designed specifically for publishing content on the Internet. It was designed to be used by users with minimal computer skills and allows users to edit the content of the site directly from the page, also, it facilitates the management of versions for each page.

Thanks to Concrete CMS you can create and deploy a website in a matter of minutes while maintaining current security measures.

A recurring question we can ask ourselves is what websites we can create with Concrete CMS. According to the project website, we can create:

  • Online magazines and newspapers.
  • eCommerce sites.
  • Extranets and Intranets.
  • Government websites.
  • Small business websites.
  • Church, club, and team websites.
  • Personal or family homepages.
  • Marketing-focused sites for a corporation.
- Advertisement -

So it is possibly what you are looking for your projects.

Install Concrete CMS on Ubuntu 20.04

Like almost any other CMS created with PHP, we need to have a web server running on our server. Fully compatible with Apache and Nginx, the decision is up to you. In this case, I have opted for Apache so the first step is to install LAMP on Ubuntu 20.04.

In addition to LAMP, you have to install some PHP modules such as:

php php-mysql php-gd php-pecl-http php-zip php-xml php-intl php-mbstring

Now you can continue.

Creating the database for Concrete CMS

With the server ready, you can now create the database and the database user for Concrete CMS to run.

So, open the MariaDB shell and start creating the database, the user and assign the corresponding permissions.

sudo mysql -u root -p
GRANT ALL PRIVILEGES ON concretedb.* TO 'concreteuser'@'localhost' IDENTIFIED BY 'password';

This way, we have MariaDB ready for Concrete CMS.

Download and install Concrete CMS

Now we can start downloading Concrete CMS. To do this, we will use the wget command and it is recommended to download the package from the /tmp folder.

cd /tmp
wget -c https://www.concrete5.org/download_file/-/view/115589/ -O concrete.zip

This command generates a file called concrete.zip where the application will be.

Unzip it using the unzip command, in case you don’t have it installed, you can do it running

sudo apt install unzip

And now unzip it.

unzip concrete.zip

Move the generated folder to Apache DocumentRoot

sudo mv concrete5-8.5.5/ /var/www/html/concrete/

Make Apache the owner of the folder

sudo chown -R www-data:www-data /var/www/html/concrete/

And set the appropriate permissions to the folder

sudo chmod -R 755 /var/www/html/concrete/

The next step is to create a new VirtualHost to make the application more accessible.

So, create the file

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

And add the following content:

<VirtualHost *:80>
     ServerAdmin admin@your_domain.com
     DocumentRoot /var/www/html/concrete
     ServerName your-domain.com

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

     ErrorLog ${APACHE_LOG_DIR}/your-domain.com_error.log
     CustomLog ${APACHE_LOG_DIR}/your-domain.com_access.log combined

1.- VirtualHost for Concrete CMS
1.- VirtualHost for Concrete CMS

Replace the value of ServerName, and ServerAdmin with your own. You can also define the folder where the logs will be hosted.

After saving the changes and closing the text editor, enable the site and the rewrite module. To apply the changes, restart Apache.

sudo a2ensite concrete
Enabling site concrete.
To activate the new configuration, you need to run:
      systemctl reload apache2
sudo a2enmod rewrite
sudo systemctl restart apache2

Secure Apache with Let’s Encrypt

Although this step is not mandatory, it is recommended to give even more security to your site. Especially if it will be available from the Internet.

So, install certbot and the Apache plugin.

sudo apt install certbot python3-certbot-apache

Now you have to generate the certificates with the help of this tool.

sudo certbot --apache

During the output screen, you will have to specify an email address, accept the license terms and finally specify the domain name. The process is actually quite simple.

Apply the changes by restarting Apache.

sudo systemctl restart apache

Now you will be able to access Concrete CMS

Complete the installation

Open a web browser and go to https://yourdomain and you will see the language selection screen.

2.- Language Screen
2.- Language Screen

After that, the installer will check the server to see if it meets the requirements.

3.- Server requeriments
3.- Server requirements

Then, you will be able to create the site and the administrator account. Also, you will have to define the database settings you created earlier.

4.- Installing Concrete CMS on Ubuntu 20.04
4.- Installing Concrete CMS on Ubuntu 20.04

You can check the advanced options

5.- Advanced options
5.- Advanced options

This is how the installation process will start.

6.- Installing Concrete CMS on Ubuntu 20.04
6.- Installing Concrete CMS on Ubuntu 20.04

If everything goes well, you will see the following screen.

7.- Installation completed
7.- Installation completed

And now you can enjoy and start working with Concrete CMS.

8.- Concrete CMS installed om Ubuntu 20.04
8.- Concrete CMS installed om Ubuntu 20.04


In this post, you have learned how to install Concrete CMS, this application is becoming more and more popular and wants to take some of the limelight away from WordPress.

- Advertisement -
Everything Linux, A.I, IT News, DataOps, Open Source and more delivered right to you.
"The best Linux newsletter on the web"


Please enter your comment!
Please enter your name here

Latest article