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.
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 CREATE DATABASE concretedb; GRANT ALL PRIVILEGES ON concretedb.* TO 'concreteuser'@'localhost' IDENTIFIED BY 'password'; FLUSH PRIVILEGES; exit;
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 </Directory> ErrorLog ${APACHE_LOG_DIR}/your-domain.com_error.log CustomLog ${APACHE_LOG_DIR}/your-domain.com_access.log combined </VirtualHost>
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.
After that, the installer will check the server to see if it meets the 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.
You can check the advanced options
This is how the installation process will start.
If everything goes well, you will see the following screen.
And now you can enjoy and start working with Concrete CMS.
Conclusion
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.