Поиск по сайту:

Как установить Drupal 8 с Nginx, PHP-FPM и SSL на Ubuntu 15.10


Drupal — известная система управления контентом с открытым исходным кодом, основанная на PHP. Он доступен бесплатно и выпущен под лицензией GNU General Public License. Drupal можно использовать для веб-сайтов любого размера, от огромных международных веб-сайтов до личных блогов и корпоративных или государственных сайтов. Основная часть drupal называется «Drupal Core», она содержит базовую систему управления контентом, управление пользователями, управление меню, настройку макета и системное администрирование. Drupal Core может быть расширен с помощью плагинов, до сих пор сообществу drupal было предоставлено более 31 000 модулей для Drupal. Текущая версия Drupal — 8.0.

В этом руководстве мы установим Drupal 8 с веб-сервером Nginx, MariaDB в качестве сервера базы данных и PHP-FPM для обработки запросов PHP. Я также покажу вам, как установить SSL-сертификат для защиты веб-сайта Drupal.

Предпосылки

  • Ubuntu 15.10 — 64-разрядная версия.
  • Привилегии root.

Шаг 1. Обновите систему Ubuntu.

Войдите на сервер Ubuntu с помощью ssh, затем станьте пользователем root и обновите репозиторий Ubuntu:

sudo su
sudo apt-get update

Шаг 2 — Установите Nginx и PHP-FPM

Nginx или «engine-x» — это быстрый HTTP-сервер, ориентированный на высокую производительность при низком использовании памяти/ОЗУ. Мы также можем использовать Nginx в качестве обратного прокси для протоколов HTTP, HTTPS, POP3 и IMAP. В этом руководстве мы будем использовать Nginx в качестве HTTP-сервера с поддержкой SSL.

Установите Nginx с помощью следующей команды apt от имени пользователя sudo/root:

sudo apt-get install nginx -y

Затем установите php-fpm с php-gd, который требуется для ядра drupal:

apt-get install php5-fpm php5-cli php5-gd php5-mysql -y

На следующем этапе мы настроим Nginx.

Шаг 3 — Настройте Nginx и PHP-FPM

На этом этапе мы настроим Nginx для использования php-fpm для обслуживания HTTP-запросов для PHP-страниц. Перейдите в каталог php-fpm \/etc/php/fpm\ и отредактируйте файл \php.ini\:

cd /etc/php/fpm/
vim php.ini

В строке 773 раскомментируйте строку cgi.fix_pathinfo и измените значение на \0\.

cgi.fix_pathinfo=0

Сохраните файл и выйдите из редактора.

Теперь мы изменим конфигурацию виртуального хоста nginx по умолчанию. Отредактируйте файл по умолчанию и включите директиву php-fpm.

cd /etc/nginx/sites-available/
vim default

Раскомментируйте строку 45–52, чтобы использовать php-fpm с nginx.

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
        #
        #       # With php5-cgi alone:
        #       fastcgi_pass 127.0.0.1:9000;
        #       # With php5-fpm:
                fastcgi_pass unix:/var/run/php5-fpm.sock;
        }

Сохраните файл и выйдите.

Затем проверьте конфигурацию Nginx с помощью команды \nginx -t\, чтобы убедиться, что она действительна:

nginx -t

Если ошибки нет, перезапустите nginx и сервис php-fpm:

systemctl restart nginx
systemctl restart php5-fpm

Затем проверьте правильность работы php-fpm с nginx, создав новый информационный файл php в веб-каталоге \/var/www/html\.

cd /var/www/html/
echo "<?php phpinfo(); ?>" > info.php

Посетите IP-адрес сервера: 192.168.1.101/info.php в веб-браузере. Результат должен быть похож на скриншот ниже.

Шаг 4 — Установите и настройте MariaDB

MariaDB — это ответвление сервера базы данных системы управления реляционными базами данных MYSQL, которое предлагает функциональные возможности замены для mysql.

Установите последнюю версию MariaDB с помощью команды apt-get:

sudo apt-get install mariadb-client mariadb-server -y

После завершения установки запустите MariaDB:

systemctl start mysql

Имя службы MariaDB — \mysql\, поэтому команда systemctl использует здесь слово mysql.

Теперь мы настроим имя пользователя и пароль MariaDB с помощью команды ниже:

mysql_secure_installation

Войдите в оболочку MariaDB со своим паролем и создайте новую базу данных для drupal с именем \drupaldb\ и создайте нового пользователя MariaDB/MySQL \drupaluser\ с паролем\[email \ для вашей установки!

mysql -u root -p


create database drupaldb;
create user ';
flush privileges;
\q

База данных \drupaldb\ с пользователем \drupaluser\ создана.

Шаг 5. Создайте самозаверяющий SSL-сертификат

Перейдите в каталог /etc/nginx и создайте новый каталог с именем \ssl\ для файла конфигурации SSL.

mkdir -p /etc/nginx/ssl
cd /etc/nginx/ssl

Затем создайте новый самозаверяющий SSL-сертификат с помощью команды openssl ниже:

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/drupal.key -out /etc/nginx/ssl/drupal.crt

Заполните запрашиваемую информацию. Файл SSL-сертификата создан, теперь измените разрешения файла закрытого ключа \drupal.key\ на 600:

chmod 600 drupal.key

Шаг 6 — Настройте VirtualHost для Drupal

Мы установим Drupal 8 в каталог \/var/www/drupal8\ с доменным именем \drupal8.me\. Пожалуйста, замените доменное имя в вашей установке на доменное имя веб-сайта, для которого вы хотите использовать эту установку drupal. Итак, давайте создадим каталог:

mkdir -p /var/www/drupal8

Затем перейдите в каталог виртуального хоста Nginx \/etc/nginx/sites-available/\ и создайте новый файл \drupal8\ с помощью редактора vim:

cd /etc/nginx/sites-available/
vim drupal8

Вставьте приведенную ниже конфигурацию Nginx для drupal в файл drupal8:

server {
    server_name drupal8.me;
    root /var/www/drupal8; ## <-- Your only path reference.

    listen 80;
    listen [::]:80;
    listen 443 default ssl;

    ssl_certificate      /etc/nginx/ssl/drupal.crt;
    ssl_certificate_key  /etc/nginx/ssl/drupal.key;

    # Redirect HTTP to HTTPS
    if ($scheme = http) {
        return 301 https://$server_name$request_uri;
    }

    location = /favicon.ico {
        log_not_found off;
        access_log off;
    }

    location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
    }

    # Very rarely should these ever be accessed outside of your lan
    location ~* \.(txt|log)$ {
        allow 192.168.0.0/16;
        deny all;
    }

    location ~ \..*/.*\.php$ {
        return 403;
    }

    location ~ ^/sites/.*/private/ {
        return 403;
    }

    # Block access to "hidden" files and directories whose names begin with a
    # period. This includes directories used by version control systems such
    # as Subversion or Git to store control files.
    location ~ (^|/)\. {
        return 403;
    }

    location / {
        # try_files $uri @rewrite; # For Drupal <= 6
        try_files $uri /index.php?$query_string; # For Drupal >= 7
    }

    location @rewrite {
        rewrite ^/(.*)$ /index.php?q=$1;
    }

    # In Drupal 8, we must also match new paths where the '.php' appears in the middle,
    # such as update.php/selection. The rule we use is strict, and only allows this pattern
    # with the update.php front controller.  This allows legacy path aliases in the form of
    # blog/index.php/legacy-path to continue to route to Drupal nodes. If you do not have
    # any paths like that, then you might prefer to use a laxer rule, such as:
    #   location ~ \.php(/|$) {
    # The laxer rule will continue to work if Drupal uses this new URL pattern with front
    # controllers other than update.php in a future release.
    location ~ '\.php$|^/update.php' {
        fastcgi_split_path_info ^(.+?\.php)(|/.*)$;
        #NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $request_filename;
        fastcgi_intercept_errors on;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
    }

    # Fighting with Styles? This little gem is amazing.
    # location ~ ^/sites/.*/files/imagecache/ { # For Drupal <= 6
    location ~ ^/sites/.*/files/styles/ { # For Drpal >= 7
        try_files $uri @rewrite;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
        expires max;
        log_not_found off;
    }
}

Сохраните файл и выйдите из редактора.

Файл виртуального хоста Drupal создан, теперь нам нужно активировать его, создав символическую ссылку на файл в каталоге «sites-enabled»:

ln -s /etc/nginx/sites-available/drupal8 /etc/nginx/sites-enabled/

Проверьте конфигурацию Nginx и перезапустите Nginx:

nginx -t
systemctl restart nginx

Шаг 7 - Установите и настройте Drupal

Нам нужно установить git и drush, прежде чем мы начнем установку Drupal. Drush — это оболочка командной строки и интерфейс сценариев Unix для Drupal. Установите его с помощью следующей команды:

sudo apt-get install git drush -y

Затем войдите в каталог drupal8, который мы создали ранее, и загрузите Drupal с помощью команды git или drush:

cd /var/www/drupal8
git clone --branch 8.0.x http://git.drupal.org/project/drupal.git

Если вы хотите использовать drush, вместо этого выполните следующую команду:

drush dl drupal-8

Дождитесь завершения загрузки, затем переместите все файлы Drupal в основной каталог:

mv drupal/* /var/www/drupal8/

На следующем шаге мы настроим файл настроек Drupal. Из основного каталога Drupal перейдите в каталог \sites/default\ и скопируйте два файла конфигурации \settings.php\ и \services.yml\. :

cd sites/default
cp default.settings.php settings.php
cp default.services.yml services.yml

Затем мы должны создать новый каталог с именем \files\ внутри каталога \sites/default\. Команда \chmod\ гарантирует, что файл конфигурации и каталог \files\ доступны для записи для установки Drupal:

mkdir files/
chmod a+w *

Теперь зайдите на свой сайт Drupal (в моем случае http://drupal8.me) с помощью веб-браузера, вы будете автоматически перенаправлены на https-соединение, и появится страница установщика Drupal.

Выберите свой язык, здесь я буду использовать \английский\.

Нажмите \Сохранить и продолжить\.

Теперь выберите тип установки. Вы можете использовать стандартный или минимальный тип. Я буду использовать \Стандартный\.

Теперь вам будет показана страница конфигурации базы данных. Заполните данные базы данных для базы данных, которую мы создали для Drupal.

Дождитесь завершения установки.

Теперь нам нужно настроить параметры профиля сайта, такие как имя сайта, имя пользователя и пароль для администратора, адрес электронной почты и т. д.

Теперь Друпал установлен. Вы будете перенаправлены на домашнюю страницу Drupal.

Вы увидите сообщение об ошибке о правах доступа к конфигурационным файлам drupal \settings.php\ и \services.yml\. Просто измените их разрешение с помощью следующих команд:

cd sites/default/
chmod 644 settings.php services.yml

Теперь Drupal 8 установлен с Nginx и SSL на Ubuntu 15.10.

Заключение

Drupal — это бесплатная среда управления контентом с открытым исходным кодом, основанная на PHP. Его можно использовать для личного блога, частной домашней страницы или корпоративного сайта. Drupal распространяется под лицензией GNU. Основной компонент Drupal называется «Ядро Drupal», и до сих пор сообщество Drupal разработало более 31 000 модулей для его расширения. Текущая стабильная версия 8.0. Drupal легко установить и настроить, мы можем использовать Nginx или Apache в качестве веб-сервера и PHP-FPM для обработки запросов PHP.