Сегодня я хочу вновь вернуться к еще одной CMS системе с которой мне как-то не особо удалось практически поработать в качестве информационного портала для моих заметок. Имя этой CMS системы — Drupal. По сути это такой же конструктор, как WordPress — по крайней мере это мое видение. Просто планирую запустить еще пару блогов чтобы свои наработки не держать в закрытом виде (не оформленными), а все также сделать как отдельные поддомены своего основного домена *.ekzorchik.ru

План:

  • Использую свой тестовый полигон на базе связки Debian 10 + Proxmox 6
  • Создаю виртуальную машину с осью Ubuntu 22.04 Server на борту (CPU =1 (2 cores),RAM = 4Gb, HDD = 50Gb)

Шаг №1: Подключаюсь по SSH к системе Ubuntu 22.04 Server

root@ekzorchik:~# ssh -l ekzorchik 172.35.35.15

Шаг №2: Обновляю информацию об установленных пакетах и обновляю систему в рамках текущего релиза посредством дефолтных репозитариев:

ekzorchik@srv-us2204a:~$ sudo rm -Rf /var/lib/apt/lists
ekzorchik@srv-us2204a:~$ cat /etc/update-manager/release-upgrades | grep Prompt
Prompt=lts
ekzorchik@srv-us2204a:~$
ekzorchik@srv-us2204a:~$ sudo sed -i '/Prompt/s/lts/never/' /etc/update-manager/release-upgrades
ekzorchik@srv-us2204a:~$ cat /etc/update-manager/release-upgrades | grep Prompt
Prompt=never
ekzorchik@srv-us2204a:~$
ekzorchik@srv-us2204a:~$ sudo apt-get update && sudo apt upgrade -y && sudo apt dist-upgrade -y
ekzorchik@srv-us2204a:~$ sudo reboot
ekzorchik@srv-us2204a:~$ uname -a && lsb_release -a
Linux srv-us2204a 5.15.0-53-generic #59-Ubuntu SMP Mon Oct 17 18:53:30 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.1 LTS
Release:        22.04
Codename:       jammy
ekzorchik@srv-us2204a:~$

Шаг №3: Устанавливаю в систему пакеты, которые считаю нужными чтобы были в системах, которые я обслуживаю:

ekzorchik@srv-us2204a:~$ sudo apt-get install -y unzip htop net-tools

Шаг №4: Выполняю базовую настройки системы Ubuntu 22.04 Server перед дальнейшим использованием:

ekzorchik@srv-us2204a:~$ sudo rm -f /etc/localtime
ekzorchik@srv-us2204a:~$ sudo ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime
ekzorchik@srv-us2204a:~$ sudo locale-gen en_US.UTF-8
Generating locales (this might take a while)...
  en_US.UTF-8... done
Generation complete.
ekzorchik@srv-us2204a:~$
ekzorchik@srv-us2204a:~$ echo "LC_ALL="en_US.UTF-8"" | sudo -s tee /etc/default/locale
LC_ALL=en_US.UTF-8
ekzorchik@srv-us2204a:~$ echo "LANG="en_US.UTF-8"" | sudo tee -a /etc/default/locale
LANG=en_US.UTF-8
ekzorchik@srv-us2204a:~$ echo "LANGUAGE="en.US.UTF-8"" | sudo tee -a /etc/default/locale
LANGUAGE=en.US.UTF-8
ekzorchik@srv-us2204a:~$
ekzorchik@srv-us2204a:~$ locale
LANG=en_US.UTF-8
LANGUAGE=en.US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8
ekzorchik@srv-us2204a:~$

Шаг №5: Устанавливаю комбайн связки Apache2 + PHP + MySQL:

ekzorchik@srv-us2204a:~$ sudo apt-get install -y apache2 php mysql-server mysql-client

Шаг №6: Изменяю схему авторизации и назначаю пароль на системную учетной запись root сервиса MySQL:

ekzorchik@srv-us2204a:~$ sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]
default-authentication-plugin=mysql_native_password

ekzorchik@srv-us2204a:~$ sudo mysql -u root -e " use mysql;SELECT user,authentication_string,plugin,host FROM mysql.user;"
+------------------+------------------------------------------------------------------------+-----------------------+-----------+
| user             | authentication_string                                                  | plugin                | host      |
+------------------+------------------------------------------------------------------------+-----------------------+-----------+
| debian-sys-maint | $A$005$v>y5M+pPbw<6!UEkI7ErOnYo5RLZCu7XDrVHkUpQcP2b9l2wcgEfe6CP0 | caching_sha2_password | localhost |
| mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| mysql.session    | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| mysql.sys        | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| root             |                                                                        | auth_socket           | localhost |
+------------------+------------------------------------------------------------------------+-----------------------+-----------+
ekzorchik@srv-us2204a:~$
ekzorchik@srv-us2204a:~$ sudo mysql -u root -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '712mbddr@';"
ekzorchik@srv-us2204a:~$ sudo mysql -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
ekzorchik@srv-us2204a:~$ sudo mysql -u root -p712mbddr@
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 15
Server version: 8.0.31-0ubuntu0.22.04.1 (Ubuntu)

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> quit
Bye
ekzorchik@srv-us2204a:~$

Шаг №7: Устанавливаю Webсервер Apache2:

ekzorchik@srv-us2204a:~$ sudo apt install -y apache2
ekzorchik@srv-us2204a:~$ echo "ServerName localhost" | sudo tee -a /etc/apache2/apache2.conf
ServerName localhost
ekzorchik@srv-us2204a:~$

Шаг №8: Отключаю дефолтные сайты Apache2:

ekzorchik@srv-us2204a:~$ sudo unlink /etc/apache2/sites-enabled/000-default.conf
ekzorchik@srv-us2204a:~$ sudo rm /etc/apache2/sites-available/000-default.conf
ekzorchik@srv-us2204a:~$ sudo rm /etc/apache2/sites-available/default-ssl.conf
ekzorchik@srv-us2204a:~$ sudo rm -f /var/www/html/index.html

Шаг №9: Устанавливаю поддержку выполнения PHP скриптов:

ekzorchik@srv-us2204a:~$ sudo apt install -y php libapache2-mod-php php-{cli,fpm,json,common,mysql,zip,gd,intl,mbstring,curl,xml,pear,tidy,soap,bcmath,xmlrpc,dev,bcmath,mbstring}

ekzorchik@srv-us2204a:~$ php -v
PHP 8.1.2-1ubuntu2.9 (cli) (built: Oct 19 2022 14:58:09) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.2-1ubuntu2.9, Copyright (c), by Zend Technologies
ekzorchik@srv-us2204a:~$

Шаг №10: Под работы CMS системы Drupal создаю базу данных, пользователя и пароль, после даю полные права пользователю на базу данных:

ekzorchik@srv-us2204a:~$ sudo mysql -u root -p712mbddr@ -e "create database db_drupal"
mysql: [Warning] Using a password on the command line interface can be insecure.
ekzorchik@srv-us2204a:~$ sudo mysql -u root -p712mbddr@ -e "create user 'us_drupal'@localhost identified by '612mbddr@';"
mysql: [Warning] Using a password on the command line interface can be insecure.
ekzorchik@srv-us2204a:~$ sudo mysql -u root -p712mbddr@ -e "grant all on db_drupal.* to 'us_drupal'@'localhost';"
mysql: [Warning] Using a password on the command line interface can be insecure.
ekzorchik@srv-us2204a:~$ sudo mysql -u root -p712mbddr@ -e "flush privileges;"
mysql: [Warning] Using a password on the command line interface can be insecure.
ekzorchik@srv-us2204a:~$

Шаг №11: Скачиваю с официального сайта CMS систему Drupal:

ekzorchik@srv-us2204a:~$ wget https://ftp.drupal.org/files/projects/drupal-9.4.8.zip

Шаг №12: Распаковываю скачанный пакет CMS системы Drupal:

ekzorchik@srv-us2204a:~$ sudo unzip drupal-9.4.8.zip -d /var/www/html/
ekzorchik@srv-us2204a:~$ sudo mv /var/www/html/drupal-9.4.8/ /var/www/html/drupal/
ekzorchik@srv-us2204a:~$ sudo chown -R www-data:www-data /var/www/html/

Шаг №13: Создаю конфигурационный файл сайта для работы с Drupal файлами:

ekzorchik@srv-us2204a:~$ sudo nano /etc/apache2/sites-available/drupal.conf
<VirtualHost *:80>

ServerAdmin support@ekzorchik.ru

ServerName 172.35.35.15
#ServerAlias www.your-domain.com
DocumentRoot /var/www/html/drupal

<Directory /var/www/html/drupal/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

ErrorLog ${APACHE_LOG_DIR}/drupal_error.log
CustomLog ${APACHE_LOG_DIR}/drupal_access.log combined

</VirtualHost>

Шаг №14: Проверяю конфигурационный файл сайта на ошибки, если все OK, то активируем конфигурационный файл сайта и перезапускаем Webсервис Apache2 для активации внесенных изменений:

ekzorchik@srv-us2204a:~$ sudo apache2ctl configtest
Syntax OK
ekzorchik@srv-us2204a:~$ sudo a2ensite drupal.conf
Enabling site drupal.
To activate the new configuration, you need to run:
  systemctl reload apache2
ekzorchik@srv-us2204a:~$ sudo systemctl restart apache2

Шаг №15: Устанавливаем необходимые модули применительно к Apache2:

ekzorchik@srv-us2204a:~$ sudo a2enmod rewrite

Enabling module rewrite.

To activate the new configuration, you need to run:

systemctl restart apache2

ekzorchik@srv-us2204a:~$

ekzorchik@srv-us2204a:~$ sudo systemctl reload apache2

Шаг №16: Переходим к Webустановке CMS системы Drupal 9 через браузер. Для этого обращаемся через браузер к URL строке системы Ubuntu 22.04 Server на которой разворачиваем Drupal:

ekzorchik@srv-us2204a:~$ ip r | awk '{print $9}' | head -n1
172.35.35.15
ekzorchik@srv-us2204a:~$

Google Chrome - URL: http://172.35.35.15 — запускается мастер первоначальной настройки

(Choose language)

  • Choose language: оставляю по дефолту используемый язык English

и нажимаю Save and continue

(Choose profile)

  • Select an installation profiles: выбираю профиль установки, оставляю Standard (как-нибудь можно попробовать Minimal для подстройки всего и вся под себя)

и нажимаю Save and continue

(Verify requirements)

  • Requirements review (системные требования)

у меня Warning found, Clean URLs в Disabled. В этом случае Вы пропустил установку модуля для Apache2:

ekzorchik@srv-us2204a:~$ sudo a2enmod rewrite
ekzorchik@srv-us2204a:~$ sudo systemctl reload apache2

после возвращаемся на страницу Verify requirements и нажимаем Retry.

(Set up database)

  • Database type: MySQL
  • Database name: db_drupal
  • Database username: us_drupal
  • Database password: 612mbddr@

нажимаем на Advanced Options

  • Host: localhost
  • Port number: 3306
  • Table name prefix: к примеру ekzdp_

и нажимаю Save and continue

ожидаю покуда установка по предопределенным шагам мастера завершится

ожидаю покуда установка по предопределенным шагам мастера завершится

успешно и вот еще один шаг от мастера установки

(Configure site)

  • Site name: tips_db_home
  • Site email address: support@ekzorchik.ru
  • Username: ekzorchik
  • Password: 712mbddr@
  • Confirm password: 712mbddr@
  • Email address: support@ekzorchik.ru
  • Default country: Russia
  • Default time zone: Moscow
  • Check for updates automatically: снимаю галочку
  • Receive email notifications: снимаю галочку

и нажимаю Save and continue

и после перекидываем на Web-страницу администрирования установленной CMS системы:

Web-система CMS Drupal 9 успешно развернутая на Ubuntu 22.04 Server

Итого я собственноручно разобрал процесс установки CMS системы Drupal 9 на Ubuntu 22.04 Server в шагах от и до. Теперь остается дело за малым познакомиться с этой системой по ближе с целью стать как можно своим также как у меня с CMS системой WordPress. На этом я прощаюсь, с уважением автор блога Олло Александр aka ekzorchik.