How to install Concrete CMS on Debian 12
To Install Concrete CMS On Debian 12
Introduction:
Concrete CMS is an open-source content management system for teams. A website builder with built-in tools makes editing content easy.
Procedure Steps:
Step 1: Check the OS version by using the below command.
root@linuxhelp:~# lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 12 (bookworm)
Release: 12
Codename: bookworm
Step 2: Install the 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 additional packages will be installed:
apache2-data apache2-utils
Suggested packages:
apache2-doc apache2-suexec-pristine | apache2-suexec-custom
The following NEW packages will be installed:
apache2 apache2-data apache2-utils
0 upgraded, 3 newly installed, 0 to remove and 196 not upgraded.
Need to get 577 kB of archives.
After this operation, 1,890 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://deb.debian.org/debian bookworm/main amd64 apache2-data all 2.4.57-2 [160 kB]
Get:2 http://deb.debian.org/debian bookworm/main amd64 apache2-utils amd64 2.4.57-2 [202 kB]
Get:3 http://deb.debian.org/debian bookworm/main amd64 apache2 amd64 2.4.57-2 [215 kB]
Fetched 577 kB in 1s (1,145 kB/s)
Selecting previously unselected package apache2-data.
(Reading database ... 168802 files and directories currently installed.)
Preparing to unpack .../apache2-data_2.4.57-2_all.deb ...
Unpacking apache2-data (2.4.57-2) ...
Selecting previously unselected package apache2-utils.
Preparing to unpack .../apache2-utils_2.4.57-2_amd64.deb ...
Unpacking apache2-utils (2.4.57-2) ...
Selecting previously unselected package apache2.
Preparing to unpack .../apache2_2.4.57-2_amd64.deb ...
Unpacking apache2 (2.4.57-2) ...
Setting up apache2-data (2.4.57-2) ...
Setting up apache2-utils (2.4.57-2) ...
Setting up apache2 (2.4.57-2) ...
Step 3: Check status of Apache web server by using the below command.
root@linuxhelp:~# systemctl status apache2
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; preset: enabled)
Active: active (running) since Thu 2024-01-04 22:37:07 IST; 8s ago
Docs: https://httpd.apache.org/docs/2.4/
Main PID: 14351 (apache2)
Tasks: 55 (limit: 3408)
Memory: 22.3M
CPU: 56ms
CGroup: /system.slice/apache2.service
├─14351 /usr/sbin/apache2 -k start
├─14352 /usr/sbin/apache2 -k start
└─14353 /usr/sbin/apache2 -k start
Jan 04 22:37:07 linuxhelp systemd[1]: Starting apache2.service - The Apache HTTP Serv>
Jan 04 22:37:07 linuxhelp systemd[1]: Started apache2.service - The Apache HTTP Serve>
Step 4: Install PHP and dependencies 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
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
libapache2-mod-php8.2 libzip4 php8.2 php8.2-cli php8.2-common php8.2-curl
php8.2-gd php8.2-imap php8.2-mbstring php8.2-mysql php8.2-opcache php8.2-readline
php8.2-xml php8.2-zip
Suggested packages:
php-pear
The following NEW packages will be installed:
libapache2-mod-php libapache2-mod-php8.2 libzip4 php php-cli php-common php-curl
php-gd php-imap php-mbstring php-mysql php-xml php-zip php8.2 php8.2-cli
php8.2-common php8.2-curl php8.2-gd php8.2-imap php8.2-mbstring php8.2-mysql
php8.2-opcache php8.2-readline php8.2-xml php8.2-zip
0 upgraded, 25 newly installed, 0 to remove and 196 not upgraded.
Need to get 5,356 kB of archives.
After this operation, 24.2 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://deb.debian.org/debian bookworm/main amd64 php-common all 2:93 [13.1 kB]
Processing triggers for man-db (2.11.2-2) ...
Processing triggers for libc-bin (2.36-9+deb12u1) ...
Processing triggers for php8.2-cli (8.2.7-1~deb12u1) ...
Processing triggers for libapache2-mod-php8.2 (8.2.7-1~deb12u1) ...
Step 5: Check the PHP version by using the below command.
root@linuxhelp:~# php -v
PHP 8.2.7 (cli) (built: Jun 9 2023 19:37:27) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.7, Copyright (c) Zend Technologies
with Zend OPcache v8.2.7, Copyright (c), by Zend Technologies
Step 6: Install MariaDB database 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 additional packages will be installed:
galera-4 gawk libcgi-fast-perl libcgi-pm-perl libconfig-inifiles-perl libdaxctl1
libdbd-mariadb-perl libdbi-perl libfcgi-bin libfcgi-perl libfcgi0ldbl
libhtml-template-perl libmariadb3 libndctl6 libpmem1 libsigsegv2
libterm-readkey-perl liburing2 mariadb-client mariadb-client-core mariadb-common
mariadb-plugin-provider-bzip2 mariadb-plugin-provider-lz4
mariadb-plugin-provider-lzma mariadb-plugin-provider-lzo
mariadb-plugin-provider-snappy mariadb-server-core pv rsync socat
Suggested packages:
gawk-doc libmldbm-perl libnet-daemon-perl libsql-statement-perl
libipc-sharedcache-perl mailx mariadb-test netcat-openbsd doc-base
python3-braceexpand
The following NEW packages will be installed:
galera-4 gawk libcgi-fast-perl libcgi-pm-perl libconfig-inifiles-perl libdaxctl1
libdbd-mariadb-perl libdbi-perl libfcgi-bin libfcgi-perl libfcgi0ldbl
libhtml-template-perl libndctl6 libpmem1 libsigsegv2 libterm-readkey-perl
liburing2 mariadb-client mariadb-client-core mariadb-plugin-provider-bzip2
mariadb-plugin-provider-lz4 mariadb-plugin-provider-lzma
mariadb-plugin-provider-lzo mariadb-plugin-provider-snappy mariadb-server
mariadb-server-core pv rsync socat
The following packages will be upgraded:
libmariadb3 mariadb-common
2 upgraded, 29 newly installed, 0 to remove and 194 not upgraded.
Need to get 18.6 MB/18.8 MB of archives.
After this operation, 193 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://deb.debian.org/debian bookworm/main amd64 libsigsegv2 amd64 2.14-1 [37.2 kB]
Get:2 http://deb.debian.org/debian bookworm/main amd64 gawk amd64 1:5.2.1-2 [673 kB]
Processing triggers for man-db (2.11.2-2) ...
Processing triggers for libc-bin (2.36-9+deb12u1) ...
Processing triggers for mariadb-server (1:10.11.4-1~deb12u1) ...
Step 7: Check the status of MariaDB database server by using the below command.
root@linuxhelp:~# systemctl status mariadb
● mariadb.service - MariaDB 10.11.4 database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; preset: enabled)
Active: active (running) since Thu 2024-01-04 22:38:12 IST; 5s ago
Docs: man:mariadbd(8)
https://mariadb.com/kb/en/library/systemd/
Main PID: 26194 (mariadbd)
Status: "Taking your SQL requests now..."
Tasks: 17 (limit: 3408)
Memory: 124.3M
CPU: 425ms
CGroup: /system.slice/mariadb.service
└─26194 /usr/sbin/mariadbd
Jan 04 22:38:12 linuxhelp mariadbd[26194]: 2024-01-04 22:38:12 0 [Note] InnoDB: Loadi>
Jan 04 22:38:12 linuxhelp mariadbd[26194]: 2024-01-04 22:38:12 0 [Note] Plugin 'FEEDB>
Jan 04 22:38:12 linuxhelp mariadbd[26194]: 2024-01-04 22:38:12 0 [Warning] You need t>
Step 8: Login to the MySQL 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.11.4-MariaDB-1~deb12u1 Debian 12
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 9: Create database by using the below command.
MariaDB [(none)]> CREATE DATABASE concrete;
Query OK, 1 row affected (0.000 sec)
Step 10: Create user with password by using the below command.
MariaDB [(none)]> CREATE USER 'concrete_usr'@'localhost' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.001 sec)
Step 11: Make the Grand privileges to the user by using the below command.
MariaDB [(none)]> GRANT ALL PRIVILEGES ON concrete.* TO 'concrete_usr'@'localhost';
Query OK, 0 rows affected (0.001 sec)
Step 12: Reload the MySQL by using the below command.
MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.000 sec)
Step 13: Exit the MySQL by using the below command.
MariaDB [(none)]> exit
Bye
Step 14: Go to tmp location by using the below command.
root@linuxhelp:~# cd /tmp
Step 15: Download the concrete CMS by using the below command.
root@linuxhelp:/tmp# wget --trust-server-names https://www.concretecms.com/download_file/277af433-97d4-4817-b48c-a758cd8adf96 -O concrete5.zip
--2024-01-04 22:40:40-- https://www.concretecms.com/download_file/277af433-97d4-4817-b48c-a758cd8adf96
Resolving www.concretecms.com (www.concretecms.com)... 108.158.251.101, 108.158.251.124, 108.158.251.35, ...
Connecting to www.concretecms.com (www.concretecms.com)|108.158.251.101|: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]
--2024-01-04 22:40:41-- 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
2024-01-04 22:40:47 (11.2 MB/s) - ‘concrete5.zip’ saved [76901122/76901122]
Step 16: Unzip the zip file by using the below command.
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/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 17: Move the concrete directory to the apache document root directory by using the below command.
root@linuxhelp:/tmp# mv concrete-cms-9.2.0/ /var/www/concrete
Step 18: Change the ownership of the document root by using the below command.
root@linuxhelp:/tmp# chown -R www-data:www-data /var/www/concrete/
Step 19: Change permission to document root by using the below command.
root@linuxhelp:/tmp# chmod -R 755 /var/www/concrete/
Step 20: Create and edit the virtual host file by using the below command.
root@linuxhelp:/tmp# vim /etc/apache2/sites-available/concrete.conf
<VirtualHost *:80>
ServerAdmin admin@linuxhelp.xyz
DocumentRoot /var/www/concrete
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 21: Enable the virtual host by using the below command.
root@linuxhelp:/tmp# a2ensite concrete.conf
Enabling site concrete.
To activate the new configuration, you need to run:
systemctl reload apache2
Step 22: Disable the default virtual host 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 23: Check apache configuration syntax by using the below command.
root@linuxhelp:/tmp# apachectl -t
AH00112: Warning: DocumentRoot [/var/www/concrete5] does not exist
Syntax OK
Step 24: Make the host entry by using the below command.
root@linuxhelp:/tmp# vim /etc/hosts
127.0.0.1 localhost
192.168.6.131 linuxhelp.xyz linuxhelp.linuxhelp linuxhelp
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Step 25: Restart the Apache by using the below command.
root@linuxhelp:/tmp# systemctl restart apache2
Step 26: Open and search the domain name as shown in below image.
Step 27: Choose preferred language and click the arrow as shown in below image.
Step 28: Verify the testing environment and click continue to installation as shown in below image.
Step 29: Configure the site information and click install concrete CMS as shown in below image.
Step 30: will be Install the CMS as shown in below image.
Step 31: The welcome page will be prompt as shown in below image.
Conclusion:
We have reached the end of this article. In this guide, we have walked you through the steps required to install Concrete CMS on Debian 12. Your feedback is much welcome.