Drupal является программным обеспечением управления контентом с открытым исходным кодом, написанный на PHP и распространяются под лицензией GPL. Он имеет большие стандартные функции, такие как легкая разработка контента, надежность работы и отличную безопасность. Гибкость и модульность являются одним из ее основных принципов, которые отличают его от остальных. Он имеет несколько инструментов, которые помогут вам создать универсальный и структурированный контент, который нужен динамическому веб-сайту.
Drupal 8 предназначен быть самым большим обновлением в истории в Drupal. Создание контента намного проще в нем. Каждая встроенная тема является отзывчивой. Он доступен на 100 языках, и его инструменты интеграции делают его отличным центром для сложных систем.
В этой статье мы покажем вам, как установить Drupal 8 с Let’s Encrypt SSL на последних серверах Debian 9. Давайте пройдем через шаги установки один за другим.
Всегда рекомендуется обновлять свои пакеты сервера на стабильные до какой-либо установки. Мы можем сделать это, просто выполнив команду обновления, как показано ниже:
#apt-get update -y
Кроме того, мы можем добавить некоторые часто используемые инструменты, которые будут помогать во время нашей установки.
#apt-get install wget git unzip nano -y
Прежде чем мы начнем с установкой 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!
Нам нужно создать базу данных и пользователя для нашей установки 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.
Вы можете загрузить и установить 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
Мы планируем настроить 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
Прежде всего, вам нужно будет создать файл виртуального хоста 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 после этих изменений.
Чтобы защитить нашу установку 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
Мы установили и настроили домен Drupal. Далее, нам необходимо завершить установку Drupal с доступом через веб-браузер. Вы можете получить доступ к интерфейсу Drupal по URL >> https://andreyex.ru/. Это все! вы установили Drupal успешно на сервере Debian 9. Теперь вы можете пойти дальше и настроить Drupal в соответствии с вашими требованиями.
Для получения дополнительной документации, вы можете посетить официальные документы, которые предоставляются в рамках проекта Drupal. Мы надеемся, что эта статья была полезна для вас. Пожалуйста, оставьте свои ценные предложения и комментарии внизу.