How to install Concrete CMS on Rocky Linux 9.3

To Install Concrete CMS On Rocky Linux 9.3

Introduction:

Concrete CMS is an open-source content management system (CMS) that allows users to build and manage websites easily. It provides a user-friendly interface and various tools and features for creating and maintaining web content.

Installation Steps:

Step 1: Check the OS version by using the below command.

[root@Linuxhelp ~]# cat /etc/os-release
NAME="Rocky Linux"
VERSION="9.3 (Blue Onyx)"
ID="rocky"
ID_LIKE="rhel centos fedora"
VERSION_ID="9.3"
PLATFORM_ID="platform:el9"
PRETTY_NAME="Rocky Linux 9.3 (Blue Onyx)"
ANSI_COLOR="0;32"
LOGO="fedora-logo-icon"
CPE_NAME="cpe:/o:rocky:rocky:9::baseos"
HOME_URL="https://rockylinux.org/"
BUG_REPORT_URL="https://bugs.rockylinux.org/"
SUPPORT_END="2032-05-31"
ROCKY_SUPPORT_PRODUCT="Rocky-Linux-9"
ROCKY_SUPPORT_PRODUCT_VERSION="9.3"
REDHAT_SUPPORT_PRODUCT="Rocky Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="9.3"

Step 2: Install Apache web server by using the below command

[root@Linuxhelp ~]# dnf install httpd -y
Rocky Linux 9 - BaseOS                                                         4.6 kB/s | 4.1 kB     00:00
Rocky Linux 9 - BaseOS                                                         1.4 MB/s | 2.2 MB     00:01
Rocky Linux 9 - Extras                                                         3.5 kB/s | 2.9 kB     00:00
Dependencies resolved.
===============================================================================================================
 Package                        Architecture        Version                       Repository              Size
===============================================================================================================
Installing:
 httpd                          x86_64              2.4.57-5.el9                  appstream               46 k
Installing dependencies:
 apr                            x86_64              1.7.0-12.el9_3                appstream              122 k
 apr-util                       x86_64              1.6.1-23.el9                  appstream               94 k
mod_lua                        x86_64              2.4.57-5.el9                  appstream               60 k
Transaction Summary
===============================================================================================================
Install  11 Packages

Total download size: 2.0 M
Installed size: 6.0 M
Downloading Packages:
(1/11): mod_lua-2.4.57-5.el9.x86_64.rpm                                        201 kB/s |  60 kB     00:00
(2/11): httpd-2.4.57-5.el9.x86_64.rpm                                          548 kB/s |  46 kB     00:00
---------------------------------------------------------------------------------------------------------------
Total                                                                          1.3 MB/s | 2.0 MB     00:01
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                       1/1
  Installing       : apr-1.7.0-12.el9_3.x86_64                                                            1/11
  Installing       : apr-util-bdb-1.6.1-23.el9.x86_64                                                     2/11
  Verifying        : rocky-logos-httpd-90.14-2.el9.noarch                                                 1/11
  Verifying        : mod_lua-2.4.57-5.el9.x86_64                                                          2/11
Installed:
  httpd-filesystem-2.4.57-5.el9.noarch  httpd-tools-2.4.57-5.el9.x86_64       mod_http2-1.15.19-5.el9.x86_64
  mod_lua-2.4.57-5.el9.x86_64           rocky-logos-httpd-90.14-2.el9.noarch
Complete!

Step 3: Enable and start the Apache Service by using the below command

[root@Linuxhelp ~]# systemctl enable httpd
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.servi                                                                                                                        ce.
[root@Linuxhelp ~]# systemctl start httpd

Step 4: Check the status of the Apache service by using the below command

[root@Linuxhelp ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
     Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; preset: disabled)
     Active: active (running) since Thu 2023-12-21 04:40:29 IST; 18s ago
       Docs: man:httpd.service(8)
   Main PID: 214512 (httpd)
     Status: "Total requests: 0; Idle/Busy workers 100/0;Requests/sec: 0; Bytes served/sec:   0 B/sec"
      Tasks: 213 (limit: 22877)
     Memory: 33.3M
        CPU: 224ms
     CGroup: /system.slice/httpd.service
             ├─214512 /usr/sbin/httpd -DFOREGROUND
             ├─214513 /usr/sbin/httpd -DFOREGROUND
             ├─214514 /usr/sbin/httpd -DFOREGROUND
             ├─214515 /usr/sbin/httpd -DFOREGROUND
             └─214516 /usr/sbin/httpd -DFOREGROUND

Dec 21 04:40:29 Linuxhelp systemd[1]: Starting The Apache HTTP Server...
Dec 21 04:40:29 Linuxhelp httpd[214512]: AH00558: httpd: Could not reliably determine the server's fully quali>
Dec 21 04:40:29 Linuxhelp systemd[1]: Started The Apache HTTP Server.
Dec 21 04:40:29 Linuxhelp httpd[214512]: Server configured, listening on: port 80
lines 1-20/20 (END)

Step 5: Install php and its modules by using the below command

[root@Linuxhelp ~]# dnf install php php-fpm php-mysqlnd php-opcache php-gd php-xml php-mbstring -y php-zip
Last metadata expiration check: 0:02:20 ago on Thursday 21 December 2023 04:38:53 AM.
Dependencies resolved.
===============================================================================================================
 Package                      Architecture       Version                           Repository             Size
===============================================================================================================
Installing:
 php                          x86_64             8.0.30-1.el9_2                    appstream             7.7 k
 php-fpm                      x86_64             8.0.30-1.el9_2                    appstream             1.6 M
 php-gd                       x86_64             8.0.30-1.el9_2                    appstream              39 k
Installing dependencies:
 libzip                       x86_64             1.7.3-7.el9                       appstream              62 k
 nginx-filesystem             noarch             1:1.20.1-14.el9_2.1               appstream             8.5 k
Installing weak dependencies:
 php-cli                      x86_64             8.0.30-1.el9_2                    appstream             3.1 M

Transaction Summary
===============================================================================================================
Install  13 Packages

Total download size: 6.8 M
Installed size: 36 M
Downloading Packages:
                                      [===                                ] ---  B/s |   0  B     --:-- ETA
(1/13): nginx-filesystem-1.20.1-14.el9_2.1.noarch.rpm                           43 kB/s | 8.5 kB     00:00
(2/13): php-pecl-zip-1.19.2-6.el9.x86_64.rpm                                   237 kB/s |  54 kB     00:00
(3/13): libzip-1.7.3-7.el9.x86_64.rpm                                          266 kB/s |  62 kB     00:00
---------------------------------------------------------------------------------------------------------------
Total                                                                          3.9 MB/s | 6.8 MB     00:01
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                       1/1
  Installing       : php-common-8.0.30-1.el9_2.x86_64                                                     1/13
  Installing       : php-pdo-8.0.30-1.el9_2.x86_64                                                        2/13
  Verifying        : nginx-filesystem-1:1.20.1-14.el9_2.1.noarch                                          1/13
  Verifying        : libzip-1.7.3-7.el9.x86_64                                                            2/13
  Verifying        : php-pecl-zip-1.19.2-6.el9.x86_64                                                     3/13
Installed:
  libzip-1.7.3-7.el9.x86_64                         nginx-filesystem-1:1.20.1-14.el9_2.1.noarch
  php-8.0.30-1.el9_2.x86_64                         php-cli-8.0.30-1.el9_2.x86_64
  php-pdo-8.0.30-1.el9_2.x86_64                     php-pecl-zip-1.19.2-6.el9.x86_64
  php-xml-8.0.30-1.el9_2.x86_64
Complete!

Step 6: Check the installed version of the PHP by using the below command

[root@Linuxhelp ~]# php -v
PHP 8.0.30 (cli) (built: Aug  3 2023 17:13:08) ( NTS gcc x86_64 )
Copyright (c) The PHP Group
Zend Engine v4.0.30, Copyright (c) Zend Technologies
    with Zend OPcache v8.0.30, Copyright (c), by Zend Technologies

Step 7: Install mariadb-server by using the below command

[root@Linuxhelp ~]# dnf install mariadb-server -y
Last metadata expiration check: 0:03:11 ago on Thursday 21 December 2023 04:38:53 AM.
Dependencies resolved.
===============================================================================================================
 Package                              Architecture     Version                       Repository           Size
===============================================================================================================
Installing:
 mariadb-server                       x86_64           3:10.5.22-1.el9_2             appstream           9.6 M
Installing dependencies:
 mariadb                              x86_64           3:10.5.22-1.el9_2             appstream           1.6 M
 mariadb-common                       x86_64           3:10.5.22-1.el9_2             appstream            27 k
perl-DBD-MariaDB                     x86_64           1.21-16.el9_0                 appstream           151 k
perl-Sys-Hostname                    x86_64           1.23-480.el9                  appstream            17 k
Installing weak dependencies:
 mariadb-backup                       x86_64           3:10.5.22-1.el9_2             appstream           6.4 M
 mariadb-gssapi-server                x86_64           3:10.5.22-1.el9_2             appstream            15 k
 mariadb-server-utils                 x86_64           3:10.5.22-1.el9_2             appstream           210 k

Transaction Summary
===============================================================================================================
Install  13 Packages
Total download size: 18 M
Installed size: 109 M
Downloading Packages:
(1/13): mariadb-connector-c-config-3.2.6-1.el9_0.noarch.rpm                     45 kB/s | 9.8 kB     00:00
(2/13): perl-Sys-Hostname-1.23-480.el9.x86_64.rpm                              223 kB/s |  17 kB     00:00---------------------------------------------------------------------------------------------------------------
Total                                                                          5.9 MB/s |  18 MB     00:03
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                       1/1
  Installing       : mariadb-connector-c-config-3.2.6-1.el9_0.noarch                                      1/13
  Installing       : mariadb-common-3:10.5.22-1.el9_2.x86_64                                              2/13
  Installing       : mariadb-connector-c-3.2.6-1.el9_0.x86_64                                             3/13
libsemanage.semanage_direct_install_info: Overriding mysql module at lower priority 100 with module at priority                                                                                                                         200.
  Verifying        : mysql-selinux-1.0.5-1.el9_0.noarch                                                   1/13
  Verifying        : mariadb-connector-c-3.2.6-1.el9_0.x86_64                                             2/13
  Verifying        : mariadb-connector-c-config-3.2.6-1.el9_0.noarch                                      3/13
Installed:
  mariadb-3:10.5.22-1.el9_2.x86_64                          mariadb-backup-3:10.5.22-1.el9_2.x86_64
  mariadb-common-3:10.5.22-1.el9_2.x86_64                   mariadb-connector-c-3.2.6-1.el9_0.x86_64
  perl-DBD-MariaDB-1.21-16.el9_0.x86_64                     perl-File-Copy-2.34-480.el9.noarch
  perl-Sys-Hostname-1.23-480.el9.x86_64
Complete!

Step 8: Enable and Start the MariaDB service by using the below command

[root@Linuxhelp ~]# systemctl enable mariadb
Created symlink /etc/systemd/system/mysql.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/mysqld.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/multi-user.target.wants/mariadb.service → /usr/lib/systemd/system/mariadb.s                                                                                                                        ervice.
[root@Linuxhelp ~]# systemctl start mariadb

Step 9: Check the status of the MariaDB service by using the below command

[root@Linuxhelp ~]# systemctl status mariadb
● mariadb.service - MariaDB 10.5 database server
     Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; preset: disabled)
     Active: active (running) since Thu 2023-12-21 04:42:45 IST; 7s ago
       Docs: man:mariadbd(8)
             https://mariadb.com/kb/en/library/systemd/
    Process: 216568 ExecStartPre=/usr/libexec/mariadb-check-socket (code=exited, status=0/SUCCESS)
   Main PID: 216673 (mariadbd)
     Status: "Taking your SQL requests now..."
      Tasks: 14 (limit: 22877)
     Memory: 74.3M
        CPU: 779ms
     CGroup: /system.slice/mariadb.service
             └─216673 /usr/libexec/mariadbd --basedir=/usr

Dec 21 04:42:45 Linuxhelp mariadb-prepare-db-dir[216629]: The second is mysql@localhost, it has no password ei>
Dec 21 04:42:45 Linuxhelp mariadb-prepare-db-dir[216629]: you need to be the system 'mysql' user to connect.

Step 10: Login to the MariaDB console by using the below command

[root@Linuxhelp ~]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 10.5.22-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> 

Step 11: Create a database by using the below command

MariaDB [(none)]> create database concrete5;
Query OK, 1 row affected (0.001 sec)

Step 12: Create a user by using the below command

MariaDB [(none)]> create user 'concrete5_usr'@'localhost' identified by '123456';
Query OK, 0 rows affected (0.001 sec)

Step 13: Grant all privileges to the database for that user by using the below command

MariaDB [(none)]> grant all privileges on concrete5.* to 'concrete5_usr'@'localhost';
Query OK, 0 rows affected (0.001 sec)

Step 14: Flush the privileges by using the below command

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.001 sec)

Step 15: Download the Concrete CMS package by using wget command

[root@Linuxhelp tmp]# wget --trust-server-names https://www.concretecms.com/download_file/277af433-97d4-4817-b4                                                                                                                     8c-a758cd8adf96 -O concrete5.zip
--2023-12-21 04:44:41--  https://www.concretecms.com/download_file/277af433-97d4-4817-b48c-a758cd8adf96
Resolving www.concretecms.com (www.concretecms.com)... 108.158.251.124, 108.158.251.35, 108.158.251.101, ...
Connecting to www.concretecms.com (www.concretecms.com)|108.158.251.124|:443... connected.
HTTP request sent, awaiting response... 307 Temporary Redirect
Location: https://www.concretecms.com/application/files/7316/8202/4279/concrete-cms-9.2.0.zip [following]
--2023-12-21 04:44:42--  https://www.concretecms.com/application/files/7316/8202/4279/concrete-cms-9.2.0.zip
Reusing existing connection to www.concretecms.com:443.
HTTP request sent, awaiting response... 200 OK
Length: 76901122 (73M) [application/zip]
Saving to: ‘concrete5.zip’
concrete5.zip               100%[==========================================>]  73.34M  11.1MB/s    in 6.6s
2023-12-21 04:44:49 (11.1 MB/s) - ‘concrete5.zip’ saved [76901122/76901122]

Step 16: Unzip the downloaded package by using the following package

[root@Linuxhelp tmp]# unzip concrete5.zip
Archive:  concrete5.zip
   creating: concrete-cms-9.2.0/
  inflating: concrete-cms-9.2.0/composer.lock
 extracting: concrete-cms-9.2.0/index.php
   creating: concrete-cms-9.2.0/concrete/
   creating: concrete-cms-9.2.0/concrete/blocks/
   creating: concrete-cms-9.2.0/concrete/blocks/desktop_featured_theme/
  inflating: concrete-cms-9.2.0/concrete/blocks/desktop_featured_theme/controller.php
  inflating: concrete-cms-9.2.0/concrete/blocks/desktop_featured_theme/view.php
   creating: concrete-cms-9.2.0/concrete/blocks/switch_language/
  inflating: concrete-cms-9.2.0/concrete/blocks/switch_language/add.php
 extracting: concrete-cms-9.2.0/concrete/blocks/switch_language/icon.png
  inflating: concrete-cms-9.2.0/concrete/blocks/switch_language/controller.php
  inflating: concrete-cms-9.2.0/concrete/blocks/switch_language/db.xml
  inflating: concrete-cms-9.2.0/concrete/blocks/switch_language/view.php
   creating: concrete-cms-9.2.0/concrete/blocks/switch_language/templates/
   creating: concrete-cms-9.2.0/concrete/blocks/switch_language/templates/flags/
  inflating: concrete-cms-9.2.0/concrete/blocks/switch_language/templates/flags/view.php
   creating: concrete-cms-9.2.0/concrete/blocks/switch_language/templates/flags_set_default/
  inflating: concrete-cms-9.2.0/concrete/blocks/switch_language/templates/flags_set_default/view.php
  inflating: concrete-cms-9.2.0/concrete/blocks/switch_language/edit.php
  inflating: concrete-cms-9.2.0/concrete/blocks/switch_language/form.php
   creating: concrete-cms-9.2.0/concrete/blocks/page_attribute_display/

Step 17: Move the directory to the Apache document root directory by using the below command

[root@Linuxhelp ~]# mv concrete-cms-9.2.0/ /var/www/concrete5

Step 18: Change the ownership of the directory by using the below command

[root@Linuxhelp ~]# chown -R apache:apache /var/www/concrete5/

Step 19: Change the permission of the directory by using the below command

[root@Linuxhelp ~]# chmod -R 755 /var/www/concrete5/

Step 20: Create the file in the /etc/apache2/sites-available directory by using the below command

[root@Linuxhelp ~]# vim /etc/httpd/conf.d/concrete5.conf
Insert the following lines
<VirtualHost *:80>
     ServerAdmin admin@linuxhelp.xyz
     DocumentRoot /var/www/concrete5
     ServerName linuxhelp.xyz
 <Directory /var/www/concrete5>
          Options FollowSymlinks
          AllowOverride All
          Require all granted
     </Directory>
ErrorLog /etc/httpd/logs/error.log
     CustomLog /etc/httpd/logs/access.log combined

</VirtualHost>

Step 21: Check the syntax of the Apache configuration by using the below command

[root@Linuxhelp ~]# httpd -t
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::20c:29ff:fe5f:5581%ens160. Set the 'ServerName' directive globally to suppress this message
Syntax OK

Step 22: Disable the Apache default welcome page by using the below command

[root@Linuxhelp ~]# setenforce 0

Step 23: Check the syntax of the Apache configuration by using the below command

[root@Linuxhelp ~]# systemctl restart httpd

Now go to the browser and search with your local IP address , you will see the following page, Click next button

Here check the testing environment and click continue to Installation

Now, you will see the Site information page, Enter the following details and click Install Concrete CMS

It will take some times for installation

After the installation has been completed, Click edit your site button

Here you will see the concrete CMS welcome page

Conclusion:

We have reached the end of this article. In this guide, we have walked you through the steps required to Installation of Concrete CMS on Rocky Linux 9.3. Your feedback is much welcome.

FAQ
Q
Is Concrete CMS suitable for e-commerce sites?
A
Yes, Concrete CMS has built-in support for e-commerce features and can be extended with add-ons to enhance online store capabilities.
Q
What are the necessary PHP extensions for Concrete CMS?
A
Ensure that the following PHP extensions are installed: gd, mbstring, json, and mysqlnd or pdo_pgsql depending on your database choice.
Q
What are the key features of Concrete CMS?
A
Concrete CMS offers features like a user-friendly interface, customizable templates, in-context editing, version control, and a robust permissions system for content management.
Q
How do I download Concrete CMS?
A
Download the latest version of Concrete CMS from the official website (https://www.concretecms.org/) or use tools like wget or curl on the command line.
Q
What are the system requirements for Concrete CMS?
A
Concrete CMS requires a web server (e.g., Apache or Nginx), PHP 7.3 or higher, and a database (MySQL or PostgreSQL).