ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Как установить Drupal 8 с Let’s Encrypt SSL на Debian 9

Как установить Drupal 8 с LetsEncrypt SSL на Debian 9.

Drupal является программным обеспечением управления контентом с открытым исходным кодом, написанный на PHP и распространяются под лицензией GPL. Он имеет большие стандартные функции, такие как легкая разработка контента, надежность работы и отличную безопасность. Гибкость и модульность являются одним из ее основных принципов, которые отличают его от остальных. Он имеет несколько инструментов, которые помогут вам создать универсальный и структурированный контент, который нужен динамическому веб-сайту.

Drupal 8 предназначен быть самым большим обновлением в истории в Drupal. Создание контента намного проще в нем. Каждая встроенная тема является отзывчивой. Он доступен на 100 языках, и его инструменты интеграции делают его отличным центром для сложных систем.

В этой статье мы покажем вам, как установить Drupal 8 с Let’s Encrypt SSL на последних серверах Debian 9. Давайте пройдем через шаги установки один за другим.

Требования

1) Начало работы

Всегда рекомендуется обновлять свои пакеты сервера на стабильные до какой-либо установки. Мы можем сделать это, просто выполнив команду обновления, как показано ниже:

#apt-get update -y

 

Кроме того, мы можем добавить некоторые часто используемые инструменты, которые будут помогать во время нашей установки.

#apt-get install wget git unzip nano -y

2) Установка Apache, MariaDB и PHP

Прежде чем мы начнем с установкой Drupal, вам потребуется работающий веб-сервер и сервер базы данных. В этой статье мы будем работать с Apache2, PHP7 и MariaDB, вы можете установить их легко с помощью нашего менеджера пакетов инструмента под названием apt.

Во-первых, начните с установки веб-сервера Apache с помощью следующей команды:

# apt-get install apache2 -y

 

После установки необходимо запустить службу Apache и включить его для автоматического запуска при следующей загрузке системы. Для этого выполните следующую команду:

# systemctl start apache2
# 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
root@debian:~# systemctl status apache2
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2017-07-19 13:12:00 UTC; 36s ago
Main PID: 12639 (apache2)
CGroup: /system.slice/apache2.service
├─12639 /usr/sbin/apache2 -k start
├─12641 /usr/sbin/apache2 -k start
└─12642 /usr/sbin/apache2 -k start

 

Во-вторых, нам необходимо установить PHP с необходимыми модулями, выполнив следующую команду:

# apt-get install php7.0 libapache2-mod-php7.0 php7.0-cli php7.0-mcrypt php7.0-intl php7.0-mysql php7.0-curl php7.0-gd php7.0-soap php7.0-xml php7.0-zip -y

 

Далее, нам нужно сделать некоторые изменения PHP переменных в нашем файле конфигурации /etc/php/7.0/cli/php.ini в зависимости от наших ресурсов сервера, как показано ниже:

memory_limit = 512M
date.timezone = UTC
cgi.fix_pathinfo=0
upload_max_filesize = 10M
post_max_size = 10M

After making these changes don't forget to restart the Apache server.

 

Теперь нам нужно установить наш сервер базы данных. Вы можете установить его, выполнив следующую команду:

# apt-get install mariadb-server -y

 

После установки необходимо запустить службу MariaDB и включить ее для автоматического запуска при следующей загрузке системы. Для этого выполните следующую команду:

# systemctl start mysql
# systemctl enable mysql
Synchronizing state of mysql.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable mysql
root@debian:~# systemctl status mysql
● mariadb.service - MariaDB database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2017-07-19 13:26:43 UTC; 43s ago
Main PID: 26526 (mysqld)
Status: "Taking your SQL requests now..."
CGroup: /system.slice/mariadb.service
└─26526 /usr/sbin/mysqld

 

Далее, вам нужно будет защитить сервер базы данных. Вы можете выполнить следующую команду, чтобы защитить базу данных MariaDB и установить корневой пароль:

# mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] y
New password:docker123
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
... Success!

Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
... Success!

Cleaning up...

All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

3) Создание базы данных Drupal

Нам нужно создать базу данных и пользователя для нашей установки Drupal, чтобы сделать это, выполните следующую команду:

.# mysql -u root -p
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 10
Server version: 10.1.23-MariaDB-9+deb9u1 Debian 9.0

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

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

MariaDB [(none)]> CREATE DATABASE drupal_db;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES on drupal_db.* to 'drupaluser'@'localhost' identified by 'drupal123';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> quit

Мы подключены к оболочке MySQL и создали базу данных с именем «drupal_db» с пользователем «drupaluser» для установки Drupal.

4) Загрузка и установка Drupal 8.3.5

Вы можете загрузить и установить Drupal от своего официального веб – сайта: https://www.drupal.org/project/drupal . Мы скачали последнюю версию программного обеспечения, имеющегося на их сайте.

# wget https://ftp.drupal.org/files/projects/drupal-8.3.5.zip
 Afterward, extract the downloaded zip file and move the extracted Drupal directory to the Drupal root directory (/var/www/html/drupal/) which we have meant for the Drupal installation.

# unzip drupal-8.3.5.zip
# mv drupal-8.3.5 /var/www/html/drupal
# chmod -R 777 /var/www/html/drupal

5) Создание SSL для домена Drupal с помощью Let’s Encrypt

Мы планируем настроить Drupal на домене andreyex.ru. Следовательно, нам нужно настройка SSL для этого домена, чтобы обеспечить нашу установку Drupal. Два из этих пакетов должны быть установлены до установки . Bc является «произвольным языком калькулятора точности. Он используется для сценария автоматического обновления в программного обеспечения let’s Encrypt. Вы можете установить эти пакеты с этой командой ниже:

#apt-get install git bc -y

 

Как только это будет сделано, мы можем легко загрузить клонированное хранилище let’s Encrypt из GitHub.

# git clone https://github.com/letsencrypt/letsencrypt

 

Теперь мы можем перейти к нашей папке установки let’s Encrypt и запустить эту команду, чтобы выпустить наш сертификат SSL.

# ./letsencrypt-auto certonly --standalone --email saheetha1@gmail.com --agree-tos -d andreyex.ru
-------------------------------------------------------------------------------
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about EFF and
our work to encrypt the web, protect its users and defend digital rights.
-------------------------------------------------------------------------------
(Y)es/(N)o: yes
Obtaining a new certificate
Performing the following challenges:
tls-sni-01 challenge for andreyex.ru
Waiting for verification...
Cleaning up challenges

IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/andreyex.ru/fullchain.pem. Your cert will
expire on 2017-10-18. To obtain a new or tweaked version of this
certificate in the future, simply run letsencrypt-auto again. To
non-interactively renew *all* of your certificates, run
"letsencrypt-auto renew"
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le

6) Создание виртуального хостинга для домена

Прежде всего, вам нужно будет создать файл виртуального хоста Apache для Drupal. Чтобы сделать это, создайте новый файл drupal.conf внутри каталога /etc/apache2/sites-available/, для этого скопируйте Vhost по умолчанию оттуда:

# cp -rp 000-default.conf drupal.conf

 

После этого, мы можем изменить виртуальный хост в соответствии с нашим доменным именем и коренем документа.

:/etc/apache2/sites-available# cat drupal.conf 
<VirtualHost *:80>
# The ServerName directive sets the request scheme, hostname and port that
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request's Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
ServerName andreyex.ru

ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/drupal/

# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf
</VirtualHost>

 

Как только это будет сделано, мы можем включить виртуальный хост и включить модуль повторной записи с помощью следующей команды:

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

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

Нам просто нужно перезапустить службу Apache после этих изменений.

7) Защита установки Drupal с помощью Let’s Encrypt SSL

Чтобы защитить нашу установку Drupal, нам нужно активировать виртуальный хост SSL для нашего домена. Вы можете сделать это путем копирования SSL для виртуального хоста по умолчанию в папку /etc/apache2/sites-available/ для drupal-ssl.conf и изменить его.

# cp -rp default-ssl.conf drupal-ssl.conf

 

Изменить разделы, чтобы включить SSL для нашего домена Drupal.

# cat drupal-ssl.conf 
<IfModule mod_ssl.c>
<VirtualHost andreyex.ru:443>
ServerAdmin webmaster@localhost

DocumentRoot /var/www/html/drupal/

SSLCertificateFile /etc/letsencrypt/live/andreyex.ru/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/andreyex.ru/privkey.pem


<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>


</VirtualHost>
</IfModule>

 

После изменения виртуального хоста, нам нужно включить SSL и перезапустить Apache.

# a2enmod ssl
Considering dependency setenvif for ssl:
Module setenvif already enabled
Considering dependency mime for ssl:
Module mime already enabled
Considering dependency socache_shmcb for ssl:
Enabling module socache_shmcb.
Enabling module ssl.
See /usr/share/doc/apache2/README.Debian.gz on how to configure SSL and create self-signed certificates.
To activate the new configuration, you need to run:
systemctl restart apache2

#systemctl restart apache2

8) Доступ к Веб-интерфейсу Drupal

Мы установили и настроили домен Drupal. Далее, нам необходимо завершить установку Drupal с доступом через веб-браузер. Вы можете получить доступ к интерфейсу Drupal по URL >> https://andreyex.ru/. Это все! вы установили Drupal успешно на сервере Debian 9. Теперь вы можете пойти дальше и настроить Drupal в соответствии с вашими требованиями.

Для получения дополнительной документации, вы можете посетить официальные документы, которые предоставляются в рамках проекта Drupal. Мы надеемся, что эта статья была полезна для вас. Пожалуйста, оставьте свои ценные предложения и комментарии внизу.

Exit mobile version