How to install Concrete CMS on Ubuntu 22.04
- 00:37 lsb_release -a
- 00:54 apt-get install apache2
- 01:36 systemctl start apache2
- 01:42 systemctl enable apache2
- 01:51 systemctl status apache2
- 02:04 apt install php php-common php-curl libapache2-mod-php php-imap php-cli php-xml php-zip php-mbstring php-gd php-mysql
- 02:33 php -v
- 02:52 apt install mariadb-server
- 03:29 systemctl start mariadb
- 03:37 systemctl enable mariadb
- 03:46 systemctl status mariadb
- 04:05 mysql
- 04:29 create database concrete5;
- 05:21 create user 'concrete5_usr'@'localhost' identified by '123456';
- 06:15 grant all privileges on concrete5.* to 'concrete5_usr'@'localhost';
- 06:29 flush privileges;
- 06:48 cd /tmp
- 07:00 wget --trust-server-names https://www.concretecms.com/download_file/277af433-97d4-4817-b48c-a758cd8adf96 -O concrete5.zip
- 07:18 unzip concrete5.zip
- 08:55 chown -R www-data:www-data /var/www/concrete5/
- 09:15 chmod -R 755 /var/www/concrete5/
- 09:38 vim /etc/apache2/sites-available/concrete5.conf
- 10:41 a2ensite concrete5.conf
- 11:00 apachectl -t
To Install Concrete CMS On Ubuntu 22.04
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.
Procedure :
Step 1: Check the OS version by using the below command
root@linuxhelp:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.3 LTS
Release: 22.04
Codename: jammy
Step 2: Install apache web server by using the below command
root@linuxhelp:~# apt-get install apache2
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages were automatically installed and are no longer required:
libflashrom1 libftdi1-2 libllvm13
Use 'apt autoremove' to remove them.
The following additional packages will be installed:
apache2-bin apache2-data apache2-utils libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap
Suggested packages:
apache2-doc apache2-suexec-pristine | apache2-suexec-custom
The following NEW packages will be installed:
apache2 apache2-bin apache2-data apache2-utils libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap
0 upgraded, 8 newly installed, 0 to remove and 55 not upgraded.
Need to get 1,918 kB of archives.
After this operation, 7,706 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://in.archive.ubuntu.com/ubuntu jammy-updates/main amd64 libapr1 amd64 1.7.0-8ubuntu0.22.04.1 [108 kB]
Get:2 http://in.archive.ubuntu.com/ubuntu jammy-updates/main amd64 libaprutil1 amd64 1.6.1-5ubuntu4.22.04.2 [92.8 kB]
Get:3 http://in.archive.ubuntu.com/ubuntu jammy-updates/main amd64 libaprutil1-dbd-sqlite3 amd64 1.6.1-5ubuntu4.22.04.2 [11.3 kB]
Get:4 http://in.archive.ubuntu.com/ubuntu jammy-updates/main amd64 libaprutil1-ldap amd64 1.6.1-5ubuntu4.22.04.2 [9,170 B]
Fetched 1,918 kB in 4s (486 kB/s)
Selecting previously unselected package libapr1:amd64.
(Reading database ... 202143 files and directories currently installed.)
Preparing to unpack .../0-libapr1_1.7.0-8ubuntu0.22.04.1_amd64.deb ...
Unpacking libapr1:amd64 (1.7.0-8ubuntu0.22.04.1) ...
Selecting previously unselected package libaprutil1:amd64.
Preparing to unpack .../1-libaprutil1_1.6.1-5ubuntu4.22.04.2_amd64.deb ...
Unpacking libaprutil1:amd64 (1.6.1-5ubuntu4.22.04.2) ...
Enabling module mpm_event.
Enabling module authz_core.
Enabling module authz_host.
Processing triggers for ufw (0.36.1-4ubuntu0.1) ...
Processing triggers for man-db (2.10.2-1) ...
Processing triggers for libc-bin (2.35-0ubuntu3.1) ...
Step 3: Start and Enable the Apache service by using the below command
root@linuxhelp:~# systemctl start apache2
root@linuxhelp:~# systemctl enable apache2
Synchronizing state of apache2.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable apache2
Step 4: Check the status of the Apache service by using the below command
root@linuxhelp:~# systemctl status apache2
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2023-10-02 23:46:08 IST; 24s ago
Docs: https://httpd.apache.org/docs/2.4/
Main PID: 9214 (apache2)
Tasks: 55 (limit: 4556)
Memory: 5.0M
CPU: 88ms
CGroup: /system.slice/apache2.service
├─9214 /usr/sbin/apache2 -k start
├─9215 /usr/sbin/apache2 -k start
└─9216 /usr/sbin/apache2 -k start
Oct 02 23:46:08 linuxhelp systemd[1]: Starting The Apache HTTP Server...
Oct 02 23:46:08 linuxhelp apachectl[9207]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this>
Oct 02 23:46:08 linuxhelp systemd[1]: Started The Apache HTTP Server.
Step 5: Install PHP and dependencies modules by using the below command
root@linuxhelp:~# apt install php php-common php-curl libapache2-mod-php php-imap php-cli php-xml php-zip php-mbstring php-gd php-mysql
Building dependency tree... Done
Reading state information... Done
The following packages were automatically installed and are no longer required:
libflashrom1 libftdi1-2 libllvm13
Use 'apt autoremove' to remove them.
The following additional packages will be installed:
libapache2-mod-php8.1 libc-client2007e libonig5 libzip4 mlock php8.1 php8.1-cli php8.1-common php8.1-curl php8.1-gd php8.1-imap php8.1-mbstring php8.1-mysql php8.1-opcache php8.1-readline php8.1-xml
php8.1-zip
Suggested packages:
php-pear uw-mailutils
The following NEW packages will be installed:
libapache2-mod-php libapache2-mod-php8.1 libc-client2007e libonig5 libzip4 mlock php php-cli php-common php-curl php-gd php-imap php-mbstring php-mysql php-xml php-zip php8.1 php8.1-cli php8.1-common
php8.1-curl php8.1-gd php8.1-imap php8.1-mbstring php8.1-mysql php8.1-opcache php8.1-readline php8.1-xml php8.1-zip
0 upgraded, 28 newly installed, 0 to remove and 55 not upgraded.
Need to get 6,901 kB of archives.
After this operation, 26.3 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://in.archive.ubuntu.com/ubuntu jammy/main amd64 php-common all 2:92ubuntu1 [12.4 kB]
Get:2 http://in.archive.ubuntu.com/ubuntu jammy-updates/main amd64 php8.1-common amd64 8.1.2-1ubuntu2.14 [1,127 kB]
Get:3 http://in.archive.ubuntu.com/ubuntu jammy-updates/main amd64 php8.1-opcache amd64 8.1.2-1ubuntu2.14 [365 kB]
Get:4 http://in.archive.ubuntu.com/ubuntu jammy-updates/main amd64 php8.1-readline amd64 8.1.2-1ubuntu2.14 [13.6 kB]
Fetched 6,901 kB in 9s (762 kB/s)
Selecting previously unselected package php-common.
(Reading database ... 202844 files and directories currently installed.)
Preparing to unpack .../00-php-common_2%3a92ubuntu1_all.deb ...
Unpacking php-common (2:92ubuntu1) ...
Created symlink /etc/systemd/system/timers.target.wants/phpsessionclean.timer → /lib/systemd/system/phpsessionclean.timer.
Setting up php8.1-common (8.1.2-1ubuntu2.14) ...
Creating config file /etc/php/8.1/mods-available/calendar.ini with new version
Creating config file /etc/php/8.1/mods-available/ctype.ini with new version
Processing triggers for man-db (2.10.2-1) ...
Processing triggers for libc-bin (2.35-0ubuntu3.1) ...
Processing triggers for php8.1-cli (8.1.2-1ubuntu2.14) ...
Processing triggers for libapache2-mod-php8.1 (8.1.2-1ubuntu2.14) ...
Step 6: Check the version of the PHP by using the below command
root@linuxhelp:~# php -v
PHP 8.1.2-1ubuntu2.14 (cli) (built: Aug 18 2023 11:41:11) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
with Zend OPcache v8.1.2-1ubuntu2.14, Copyright (c), by Zend Technologies
Step 7: Install mariadb-server by using the below command
root@linuxhelp:~# apt install mariadb-server
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages were automatically installed and are no longer required:
libflashrom1 libftdi1-2 libllvm13
Use 'apt autoremove' to remove them.
The following additional packages will be installed:
galera-4 gawk libcgi-fast-perl libcgi-pm-perl libconfig-inifiles-perl libdaxctl1 libdbd-mysql-perl libdbi-perl libfcgi-bin libfcgi-perl libfcgi0ldbl libhtml-template-perl libmariadb3 libmysqlclient21
libndctl6 libpmem1 libsigsegv2 libsnappy1v5 libterm-readkey-perl liburing2 mariadb-client-10.6 mariadb-client-core-10.6 mariadb-common mariadb-server-10.6 mariadb-server-core-10.6 mysql-common socat
Suggested packages:
gawk-doc libmldbm-perl libnet-daemon-perl libsql-statement-perl libipc-sharedcache-perl mailx mariadb-test
The following NEW packages will be installed:
galera-4 gawk libcgi-fast-perl libcgi-pm-perl libconfig-inifiles-perl libdaxctl1 libdbd-mysql-perl libdbi-perl libfcgi-bin libfcgi-perl libfcgi0ldbl libhtml-template-perl libmariadb3 libmysqlclient21
libndctl6 libpmem1 libsigsegv2 libsnappy1v5 libterm-readkey-perl liburing2 mariadb-client-10.6 mariadb-client-core-10.6 mariadb-common mariadb-server mariadb-server-10.6 mariadb-server-core-10.6
mysql-common socat
0 upgraded, 28 newly installed, 0 to remove and 55 not upgraded.
Need to get 18.7 MB of archives.
After this operation, 165 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://in.archive.ubuntu.com/ubuntu jammy/main amd64 libsigsegv2 amd64 2.13-1ubuntu3 [14.6 kB]
Get:2 http://in.archive.ubuntu.com/ubuntu jammy-updates/main amd64 gawk amd64 1:5.1.0-1ubuntu0.1 [447 kB]
Get:3 http://in.archive.ubuntu.com/ubuntu jammy/main amd64 mysql-common all 5.8+1.0.8 [7,212 B]
Get:4 http://in.archive.ubuntu.com/ubuntu jammy-updates/universe amd64 mariadb-common all 1:10.6.12-0ubuntu0.22.04.1 [16.4 kB]
Fetched 18.7 MB in 13s (1,478 kB/s)
Preconfiguring packages ...
Selecting previously unselected package libsigsegv2:amd64.
(Reading database ... 203122 files and directories currently installed.)
Preparing to unpack .../libsigsegv2_2.13-1ubuntu3_amd64.deb ...
Unpacking libsigsegv2:amd64 (2.13-1ubuntu3) ...
Unpacking mariadb-server (1:10.6.12-0ubuntu0.22.04.1) ...
Setting up libconfig-inifiles-perl (3.000003-1) ...
Setting up galera-4 (26.4.9-1build1) ...
Setting up libmysqlclient21:amd64 (8.0.34-0ubuntu0.22.04.1) ...
Created symlink /etc/systemd/system/multi-user.target.wants/mariadb.service → /lib/systemd/system/mariadb.service.
Setting up mariadb-server (1:10.6.12-0ubuntu0.22.04.1) ...
Processing triggers for man-db (2.10.2-1) ...
Processing triggers for libc-bin (2.35-0ubuntu3.1) ...
Step 8: Start and Enable the MariaDB service by using the below command
root@linuxhelp:~# systemctl start mariadb
root@linuxhelp:~# systemctl enable mariadb
Synchronizing state of mariadb.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable mariadb
Step 9: Check the status of the MariaDB service by using the below command
ot@linuxhelp:~# systemctl status mariadb
● mariadb.service - MariaDB 10.6.12 database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2023-10-02 23:48:46 IST; 1min 8s ago
Docs: man:mariadbd(8)
https://mariadb.com/kb/en/library/systemd/
Main PID: 22628 (mariadbd)
Status: "Taking your SQL requests now..."
Tasks: 10 (limit: 4556)
Memory: 61.4M
CPU: 914ms
CGroup: /system.slice/mariadb.service
└─22628 /usr/sbin/mariadbd
Oct 02 23:48:46 linuxhelp mariadbd[22628]: 2023-10-02 23:48:46 0 [Note] InnoDB: 10.6.12 started; log sequence number 41380; transaction id 14
Oct 02 23:48:46 linuxhelp mariadbd[22628]: 2023-10-02 23:48:46 0 [Note] InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_pool
Oct 02 23:48:46 linuxhelp mariadbd[22628]: 2023-10-02 23:48:46 0 [Note] Plugin 'FEEDBACK' is disabled.
Oct 02 23:48:46 linuxhelp mariadbd[22628]: 2023-10-02 23:48:46 0 [Warning] You need to use --log-bin to make --expire-logs-days or --binlog-expire-logs-seconds work.
Oct 02 23:48:46 linuxhelp mariadbd[22628]: 2023-10-02 23:48:46 0 [Note] Server socket created on IP: '127.0.0.1'.
Oct 02 23:48:46 linuxhelp mariadbd[22628]: 2023-10-02 23:48:46 0 [Note] InnoDB: Buffer pool(s) load completed at 231002 23:48:46
Oct 02 23:48:46 linuxhelp mariadbd[22628]: 2023-10-02 23:48:46 0 [Note] /usr/sbin/mariadbd: ready for connections.
Oct 02 23:48:46 linuxhelp mariadbd[22628]: Version: '10.6.12-MariaDB-0ubuntu0.22.04.1' socket: '/run/mysqld/mysqld.sock' port: 3306 Ubuntu 22.04
Oct 02 23:48:46 linuxhelp systemd[1]: Started MariaDB 10.6.12 database server.
Oct 02 23:48:46 linuxhelp /etc/mysql/debian-start[22665]: Triggering myisam-recover for all MyISAM tables and aria-recover for all Aria tables
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 31
Server version: 10.6.12-MariaDB-0ubuntu0.22.04.1 Ubuntu 22.04
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
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: Change the directory to the /tmp directory by using the below command
root@linuxhelp:~# cd /tmp
Step 16: Download the package by using wget command
root@linuxhelp:/tmp# wget --trust-server-names https://www.concretecms.com/download_file/277af433-97d4-4817-b48c-a758cd8adf96 -O concrete5.zip
--2023-10-02 23:52: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.110, 108.158.251.35, ...
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-10-02 23:52: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.2MB/s in 6.5s
2023-10-02 23:52:49 (11.2 MB/s) - ‘concrete5.zip’ saved [76901122/76901122]
Step 17: 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/application/authentication/
creating: concrete-cms-9.2.0/application/src/
inflating: concrete-cms-9.2.0/robots.txt
inflating: concrete-cms-9.2.0/LICENSE.TXT
inflating: concrete-cms-9.2.0/composer.json
Step 18: Move the directory to the Apache document root directory by using the below command
root@linuxhelp:/tmp# mv concrete-cms-9.2.0 /var/www/concrete5
Step 19: Change the ownership of the directory by using the below command
root@linuxhelp:/tmp# chown -R www-data:www-data /var/www/concrete5/
Step 20: Change the permission of the directory by using the below command
root@linuxhelp:/tmp# chmod -R 755 /var/www/concrete5/
Step 21: Create the file in the /etc/apache2/sites-available directory by using the below command
root@linuxhelp:/tmp# vim /etc/apache2/sites-available/concrete5.conf
Add 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 ${APACHE_LOG_DIR}/linuxhelp.xyz_error.log
CustomLog ${APACHE_LOG_DIR}/linuxhelp.xyz_access.log combined
</VirtualHost>
Step 22: Enable the Apache configuration by using the below command
root@linuxhelp:/tmp# a2ensite concrete5.conf
Enabling site concrete5.
To activate the new configuration, you need to run:
systemctl reload apache2
**Step 23: Disable the Apache default welcome page by using the below command **
root@linuxhelp:/tmp# a2dissite 000-default.conf
Site 000-default disabled.
To activate the new configuration, you need to run:
systemctl reload apache2
Step 24: Check the syntax of the Apache configuration by using the below command
root@linuxhelp:/tmp# apachectl -t
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Syntax OK
Step 25: Restart the Apache service by using the below command
root@linuxhelp:/tmp# systemctl restart apache2
Go to the browser and search with your local IP you will see the following page, Click next button
Now check testing the 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
Now the installation has been completed, Click edit your site button
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 Concrete5 CMS on Ubuntu 22.04. Your feedback is much welcome.
Comments ( 0 )
No comments available