• Categories
    Category
    {{ postCtrl.tags }}
    • {{ category.tag_type }}

      • {{tag.tag_name}}
      • View more
  • Categories
    Category
    {{ postCtrl.tags }}
    • {{ category.tag_type }}

      • {{tag.tag_name}}
      • View more
  • News
  • Tutorials
  • Forums
  • Tags
  • Users
Tutorial News Comments FAQ Related Articles

How to install Concrete CMS on Debian 12

  • .07:31 a2dissite 000-default.conf
  • 00:26 lsb_release -a
  • 00:33 apt-get install apache2
  • 00:51 systemctl status apache2
  • 01:19 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:06 php -v
  • 02:13 apt install mariadb-server
  • 02:40 systemctl status mariadb
  • 03:03 mysql
  • 03:08 CREATE DATABASE concrete;
  • 03:17 CREATE USER 'concrete_usr'@'localhost' IDENTIFIED BY '123456';
  • 03:48 GRANT ALL PRIVILEGES ON concrete.* TO 'concrete_usr'@'localhost';
  • 04:32 FLUSH PRIVILEGES;
  • 04:41 exit
  • 04:46 cd /tmp
  • 05:00 wget --trust-server-names https://www.concretecms.com/download_file/277af433-97d4-4817-b48c-a758cd8adf96 -O concrete5.zip
  • 05:13 unzip concrete5.zip
  • 05:31 mv concrete-cms-9.2.0/ /var/www/concrete
  • 05:52 chown -R www-data:www-data /var/www/concrete/
  • 06:20 chmod -R 755 /var/www/concrete/
  • 06:35 vim /etc/apache2/sites-available/concrete.conf
  • 07:07 a2ensite concrete.conf
  • 07:41 apachectl -t
  • 07:56 vim /etc/hosts
  • 08:13 systemctl restart apache2
{{postValue.id}}

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. snap 1

Step 27: Choose preferred language and click the arrow as shown in below image. snap 2

Step 28: Verify the testing environment and click continue to installation as shown in below image. snap 3

Step 29: Configure the site information and click install concrete CMS as shown in below image. snap 4 snap 5

Step 30: will be Install the CMS as shown in below image. snap 6

Step 31: The welcome page will be prompt as shown in below image. snap 7

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.

Tags:
sebastian
Author: 

Comments ( 0 )

No comments available

Add a comment
{{postCtrl.cmtErrMsg}}

Frequently asked questions ( 5 )

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).

Q

How to 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 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

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

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.

Back To Top!
Rank
User
Points

Top Contributers

userNamenaveelansari
135850

Top Contributers

userNameayanbhatti
92510

Top Contributers

userNamehamzaahmed
32150

Top Contributers

1
userNamelinuxhelp
31040

Top Contributers

userNamemuhammadali
24500
Can you help Lucas ?
Various options in Top command

Am using Top command only to view the load average, what are the various options in Top command..??

Networking
  • Routing
  • trunk
  • Netmask
  • Packet Capture
  • domain
  • HTTP Proxy
Server Setup
  • NFS
  • KVM
  • Memory
  • Sendmail
  • WebDAV
  • LXC
Shell Commands
  • Cloud commander
  • Command line archive tools
  • last command
  • Shell
  • terminal
  • Throttle
Desktop Application
  • Linux app
  • Pithos
  • Retrospect
  • Scribe
  • TortoiseHg
  • 4Images
Monitoring Tool
  • Monit
  • Apache Server Monitoring
  • EtherApe 
  • Arpwatch Tool
  • Auditd
  • Barman
Web Application
  • Nutch
  • Amazon VPC
  • FarmWarDeployer
  • Rukovoditel
  • Mirror site
  • Chef
Contact Us | Terms of Use| Privacy Policy| Disclaimer
© 2025 LinuxHelp.com All rights reserved. Linux™ is the registered trademark of Linus Torvalds. This site is not affiliated with linus torvalds in any way.