Concrete5 is a CMS (content management system) which allows users to edit any page via editing toolbar and change its content or design without reading complicated manuals or navigating a complex administration back-end.
In this article, we’ll go over the step by step to install Concrete5 CMS on Fedora Linux. This will include setting up Apache as an HTTP server, various PHP modules, and MariaDB to host the database.
In this tutorial you will learn:
- How to install prerequisite packages for Concrete5 CMS
- How to setup a MariaDB database and user for Concrete5
- How to install and configure Concrete5 CMS
|Category||Requirements, Conventions or Software Version Used|
|Software||Concrete5 CMS, Apache, PHP, MariaDB|
|Other||Privileged access to your Linux system as root or via the
# – requires given linux commands to be executed with root privileges either directly as a root user or by use of
$ – requires given linux commands to be executed as a regular non-privileged user
Install prerequisite packages
Concrete5 requires a few packages to run properly. You’ll of course need an HTTP server since we’re hosting a website, but you’ll also need to install PHP to serve dynamic content, and MariaDB to store data in a database. Use the following command to install all the prerequisite packages via Fedora’s package manager.
$ sudo dnf install httpd mysql-server php php-mysqlnd php-gd php-pecl-zip
At this point, we can move on to configuring MariaDB. This will involve setting up a new database and user especially for Concrete5 CMS.
- We can begin by starting the MariaDB service and enabling it to start automatically upon system reboot.
$ sudo systemctl enable --now mariadb
- The next thing you’ll want to do after installing your MariaDB server is secure it via the following command:
$ sudo mysql_secure_installation
You’ll be prompted with a few setup questions now. How you answer them will depend on the environment in which you’re deploying this MariaDB server. If in doubt, select the most secure settings and choose a strong root password. It’s also best practice to disable remote root logins.
- Next, open up MariaDB with root permissions.
$ sudo mysql
- Create a new database with the following command. We’ll just call ours “concrete5”.
MariaDB [none]> CREATE DATABASE concrete5;
- Next, we need to create a new user account that will have privileges to the database we just created. We’ll call our user “concrete5” and set our password to “concrete5pass” but you can use any values you want.
MariaDB [none]> CREATE USER 'concrete5'@'localhost' IDENTIFIED BY 'concrete5pass';
- Next, we need to grant this new user some permissions on our database. We will give the user all permissions on our database with the following command:
MariaDB [none]> GRANT ALL PRIVILEGES ON concrete5.* to concrete5@'localhost';
- Lastly, save all the changes with this command, and then use the
exitcommand to close the MariaDB terminal.
MariaDB [none]> FLUSH PRIVILEGES; MariaDB [none]> exit
You now have a usable MariaDB database and a user account that the Concrete5 CMS will be able to use in order to store and retrieve data for your website.
Download Concrete5 CMS
If you are hosting multiple websites on your server, you’ll need to configure Apache’s virtual hosts for your new Concrete5 website. The rest of this tutorial assumes this is your only website and Concrete5 will be installed to
We can now download the Concrete5 files, which we cover in the following steps. We’ll also configure Apache’s web hosting directory with the proper file permissions and SELinux security context.
- Head over to Concrete5’s download page to get the latest version of the software.
- Once it’s downloaded, unzip the contents into your system’s
/var/www/htmldirectory by using these commands (but replace the file name with that of the current version).
$ unzip concrete5-8.5.5.zip $ sudo mv concrete5-8.5.5/* /var/www/html
- Set the proper permissions on the web directory, then change the SELinux context of the web directory.
$ sudo chown -R apache.apache /var/www/html/ $ sudo chcon -R -t httpd_sys_content_rw_t /var/www/html/
Access Concrete5 website and finish up
Now that the configuration is done, make sure Apache is running and enabled.
$ sudo systemctl enable --now httpd
At this point, you should be able to navigate to your website and follow the prompts to finish setting everything up. Either use your IP address or fully qualified domain name to access the site, or if it’s being hosted on your current system you can just navigate to
You will be required to make a new administrator account, and then fill in the database and database user information that you configured in MariaDB earlier. For database server, enter “localhost” if your website and database are hosted on the same server. After clicking through the rest of the prompts, you’ll be able to access your completed website and begin to polish it.
In this guide, we saw how to install Concrete5 CMS on Fedora Linux. This included installing and configuring the necessary prerequisites, such as Apache web server, MariaDB database server, PHP, and various PHP modules. We also learned how to access our Concrete5 website in browser to finish its configuration.