How to Install Drupal CMS on Linux Mint 20

To Install Drupal CMS on Linux Mint 20.

Drupal is a web content management tool as well as a customizable platform to help you to build the right tool to serve your content management strategy. It is used by Business and technology leaders to create real-world enterprise solutions that empower web innovation. This Tutorial covers the installation of the Drupal CMS on Linux Mint 20.

Requirements of Drupal CMS:

Apache

MySQL

Php and its Modules

Installation procedure:

Check the version of the Linux Mint 20.

root@linuxhelp:~# cat /etc/os-release 
NAME="Linux Mint"
VERSION="20 (Ulyana)"
ID=linuxmint
ID_LIKE=ubuntu
PRETTY_NAME="Linux Mint 20"
VERSION_ID="20"

Now install the php and its modules by using the following command

root@linuxhelp:~# apt install php php-xml php-mysql  php-mbstring php-zip php-soap php-curl php-gd php-ldap php-imap php-common php-dev libmcrypt-dev php-pear
Reading package lists... Done
Building dependency tree       
Reading state information... Done
php is already the newest version (2:7.4+75).
php-common is already the newest version (2:75).
php-common set to manually installed.
php-mysql is already the newest version (2:7.4+75).
The following additional packages will be installed:
  autoconf automake autopoint autotools-dev debhelper dh-autoreconf dh-strip-nondeterminism dwz libarchive-cpio-perl
  libc-client2007e libc-dev-bin libc6 libc6-dbg libc6-dev libcrypt-dev libdebhelper-perl
.
.
.
Setting up dh-autoreconf (19) ...
Setting up debhelper (12.10ubuntu1) ...
Setting up pkg-php-tools (1.38) ...
Processing triggers for doc-base (0.10.9) ...
Processing 2 added doc-base files...
Processing triggers for libc-bin (2.31-0ubuntu9) ...
Processing triggers for man-db (2.9.1-1) ...
Processing triggers for install-info (6.7.0.dfsg.2-5) ...
Processing triggers for libapache2-mod-php7.4 (7.4.3-4ubuntu2.4) ...
Processing triggers for php7.4-cli (7.4.3-4ubuntu2.4) ...

Now create a database to the Drupal CMS by using the following command

root@linuxhelp:~# mysql -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 55
Server version: 10.3.22-MariaDB-1ubuntu1 Ubuntu 20.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.
MariaDB [(none)]> create database drupaldb;
Query OK, 1 row affected (0.038 sec)
MariaDB [(none)]> create user 'drupaluser'@localhost identified by 'Linuxc@123';
Query OK, 0 rows affected (0.056 sec)
MariaDB [(none)]> grant all privileges on drupaldb.* to 'drupaluser'@localhost;
Query OK, 0 rows affected (0.001 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.030 sec)
MariaDB [(none)]> exit
Bye

Now I am download the Drupal CMS by using following command

root@linuxhelp:~# wget https://www.drupal.org/download-latest/zip
--2020-12-02 14:25:05--  https://www.drupal.org/download-latest/zip
Resolving www.drupal.org (www.drupal.org)... 199.232.254.217
Connecting to www.drupal.org (www.drupal.org)|199.232.254.217|:443... connected.
HTTP request sent, awaiting response... 302 Moved Temporarily
Location: https://ftp.drupal.org/files/projects/drupal-9.0.9.zip [following]
--2020-12-02 14:25:07--  https://ftp.drupal.org/files/projects/drupal-9.0.9.zip
Resolving ftp.drupal.org (ftp.drupal.org)... 199.232.254.217
Connecting to ftp.drupal.org (ftp.drupal.org)|199.232.254.217|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 28326478 (27M) [application/zip]
Saving to: ‘zip’

zip                            100%[==================================================>]  27.01M   999KB/s    in 27s     

2020-12-02 14:25:34 (1.01 MB/s) - ‘zip’ saved [28326478/28326478]

Now extract the package by using the following command

root@linuxhelp:~# unzip zip 
Archive:  zip
   creating: drupal-9.0.9/
   creating: drupal-9.0.9/vendor/
   creating: drupal-9.0.9/vendor/composer/
   creating: drupal-9.0.9/vendor/composer/installers/
  inflating: drupal-9.0.9/vendor/composer/installers/LICENSE  
.
.
.
  inflating: drupal-9.0.9/profiles/README.txt  
   creating: drupal-9.0.9/themes/
  inflating: drupal-9.0.9/themes/README.txt  
  inflating: drupal-9.0.9/autoload.php  
  inflating: drupal-9.0.9/composer.json  
  inflating: drupal-9.0.9/composer.lock  
  inflating: drupal-9.0.9/LICENSE.txt  
root@linuxhelp:~# ls
drupal-9.0.9  zip

Now move the drupal cms directory to apache root directory

root@linuxhelp:~# mv drupal-9.0.9 /var/www/drupal

Now set the ownership and permissions to the drupal directory

root@linuxhelp:~# chown -R www-data.www-data /var/www/drupal/
root@linuxhelp:~# chmod -R 755 /var/www/drupal/

Now configure the virtualhost for access the drupal CMS

root@linuxhelp:~# vi /etc/apache2/sites-available/drupal.conf

Now disable the default site access by using following command

root@linuxhelp:~# a2dissite 000-default.conf
Site 000-default disabled.
To activate the new configuration, you need to run:
  systemctl reload apache2

Now enable the site access for drupal CMS

root@linuxhelp:~# a2ensite drupal.conf
Enabling site drupal.
To activate the new configuration, you need to run:
  systemctl reload apache2

Now enable the rewrite module

root@linuxhelp:~# a2enmod rewrite
Enabling module rewrite.
To activate the new configuration, you need to run:
  systemctl restart apache2

Now restart the apache service by using the following command

root@linuxhelp:~# systemctl restart apache2

Open browse and enter your host name

This is the welcome page of the Drupal CMS select your language

Select the installation profile

Configure the database

The installation process is running

Configure the site

This the dashboard of drupal CMS

With this method, the installation of Drupal CMS on Linux Mint 20 comes to an End.

FAQ
Q
What is the command to extract the download package?
A
The command is # unzip (zip file name)
Q
How to configure the host entry?
A
the command is # vi /etc/hosts
Q
How do you create a database for Drupal CMS?
A
The command is # create database drupaldb;
Q
What is the command to enter MySQL?
A
The command is # mysql -u root -p
Q
What is Drupal CMS?
A
Drupal is a web content management tool as well as a customizable platform to help you to build the right tool to serve your content management strategy.