Як встановити Drupal 8.1 за допомогою Nginx, PHP-FPM та SSL на Ubuntu 16.04

Як встановити Drupal 8.1 за допомогою Nginx, PHP-FPM та SSL на Ubuntu 16.04

Drupal - це відома система керування вмістом із відкритим кодом, заснована на PHP. Він доступний безкоштовно та випущений під GNU General Public License. Drupal можна використовувати для всіх розмірів веб-сайтів, від величезних міжнародних веб-сайтів до персональних блогів та корпоративних або державних сайтів. Основна частина Drupal називається "Drupal Core", вона містить базову систему управління контентом, керування користувачами, управління меню, налаштування макета та адміністрування системи. Drupal Core може бути розширений плагінами, дотепер спільноту drupal було надано більше, ніж модулі 31.000 для Drupal.

У цьому підручнику ми встановимо Drupal 8.1.10 з веб-сервером Nginx, MariaDB 10 як сервер баз даних і PHP-FPM (PHP 7.0) для обробки запитів PHP. Я також покажу вам, як встановити сертифікат SSL, щоб захистити веб-сайт Drupal.

Передумови

  • Ubuntu 16.04 - версія 64bit.
  • Привілеї root.

Крок 1 - оновлення системи Ubuntu

Увійдіть на сервер ubuntu за допомогою ssh, а потім станьте кореневим користувачем і оновіть репозиторій ubuntu:

Sudo су
Суду apt-get поновлення

Крок 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

Потім встановіть php7.0-fpm з розширенням php-gd, яке вимагається ядром drupal:

sudo apt-get install php7.0-fpm php7.0-cli php7.0-gd php7.0-mysql php7.0-xml -y

На наступному кроці ми налаштуємо Nginx.

Крок 3 - Налаштування Nginx та PHP-FPM

На цьому кроці ми налаштуємо Nginx на використання php-fpm для надання HTTP-запитів для сторінок PHP. Перейдіть до каталогу php-fpm "/ etc / php / 7.0 / fpm" і відредагуйте файл php.ini:

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

On line 761, розкоментувати лінію cgi.fix_pathinfo та змінити значення на "0".

cgi.fix_pathinfo = 0

Збережіть файл і вийдіть з редактора.

Тепер ми змінюємо конфігурацію віртуального хоста за замовчуванням Nginx. Відредагуйте файл за умовчанням та ввімкніть директиву php-fpm.

cd / etc / nginx / sites-available /
VIM за замовчуванням

Розчленувати лінію 51 - 58 використовувати php-fpm з nginx.

        location ~ .php $ {включають фрагменти / fastcgi-php.conf; # # # З php7.0-cgi: # fastcgi_pass 127.0.0.1: 9000; # # З php7.0-fpm: fastcgi_pass unix: /run/php/php7.0-fpm.sock; }

Зберегти файл і вийти.

Потім перевірте конфігурацію Nginx за допомогою команди "nginx -t"Щоб переконатися, що це дійсно:

nginx -t

Якщо помилки немає, перезапустіть nginx та службу php-fpm:

systemctl перезапустити nginx
systemctl перезапустити php7.0-fpm

Далі перевірте, чи правильно працює php-fpm з nginx, створивши новий файл інформації про PHP у веб-каталозі "/ var / www / html".

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

Відвідайте файл info.php на сервері IP (у моєму випадку http: //192.168.1.4 / info.php) в веб-браузері. Результат повинен бути подібним до скріншоту нижче.

Крок 4 - встановлення та налаштування MariaDB

MariaDB - це серверний сервер баз даних системи керування реляційною базою даних MYSQL, він пропонує функцію заміни для MySQL.

Встановіть останню версію MariaDB за допомогою команди apt-get:

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

Коли установка завершена, запустіть MariaDB:

systemctl почати mysql

Назва служби MariaDB - "mysql", отже команда systemctl тут використовує слово mysql.

Тепер ми налаштуємо ім'я користувача та пароль MariaDB за допомогою наведеної нижче команди.

mysql_secure_installation

mysql_secure_installation
Встановити пароль адміністратора? [Y / n] Y
Новий пароль:
Повторно введіть новий пароль:
Видалити анонімних користувачів? [Y / n] Y
... Успіх!
Заборонити відключити кореневий авторизацію? [Y / n] Y
... Успіх!
Видалити тестову базу даних та доступ до неї? [Y / n] Y
... Успіх!
Перезавантажити таблиці привілеїв зараз? [Y / n] Y
... Успіх!

Увійдіть до пантера MariaDB за допомогою пароля та створіть нову базу даних для drupal під назвою "джупалдб"І створити новий користувач MariaDB / MySQL"Друпаллер"З паролем"drupaluser @І, нарешті, надавати права доступу до бази даних. Будь ласка, оберіть безпечний пароль замість “drupaluser @” для встановлення!

mysql -u root -p
створити базу даних drupaldb;
створити користувача [захищена електронною поштою], що ідентифікується як "drupaluser @";
надавати всі привілеї на drupaldb. * до [email protected], що ідентифікується як "drupaluser @";
флеш пільг;
q

База даних "джупалдб"З користувачем"Друпаллер"Створено".

Крок 5 - Створіть сертифікат для самопідписаного SSL

Перейти до / etc / nginx Каталог та створіть новий каталог із назвою "ssl" для файлу конфігурації SSL.

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

Потім створіть новий власний сертифікат SSL із командою openssl нижче:

openssl req -x509 -nodes -days 365 -nwkey 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". Будь ласка, замініть ім'я домену у вашій установці за допомогою імені домену веб-сайту, на який ви хочете використовувати цю установку для друпалу. Тому створіть каталог:

mkdir -p / var / www / drupal8

Потім перейдіть до директорії Nginx virtualhost "/ etc / nginx / sites-available /" і створіть новий файл "drupal8" за допомогою редактора vim:

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

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

сервер {ім'я_серверу drupal8.me; root / var / www / drupal8; ## <- Ваш єдиний посилання на шлях. слухати 80; слухати [::]: 80; слухати за замовчуванням ssl 443; ssl_certificate /etc/nginx/ssl/drupal.crt; ssl_certificate_key /etc/nginx/ssl/drupal.key; # Перенаправити HTTP на HTTPS if ($ scheme = http) {return 301 https: // $ server_name $ request_uri; } location = /favicon.ico {log_not_found off; access_log off; } location = /robots.txt {дозволити всім; log_not_found off; access_log off; } # Дуже рідко до них можна звертатися за межами вашої локації * *. (Txt | log) $ {дозволити 192.168.0.0 / 16; заперечувати все; } розташування ~ .. * /. *. php $ {повернути 403; } розташування ~ ^ / sites /.*/ private / {return 403; } # Блокувати доступ до "прихованих" файлів і каталогів, імена яких починаються з # періоду. Це включає в себе каталоги, які використовуються системами контролю версій, такими як Subversion або Git для зберігання файлів керування. розташування ~ (^ | /). {повернути 403; } location / {# try_files $ uri @rewrite; # Для Drupal <= 6 try_files $ uri /index.php?$query_string; # Для Drupal> = 7} розташування @rewrite {rewrite ^ / (. *) $ /Index.php?q=$1; } # У Drupal 8, ми також повинні збігатися з новими шляхами, де '.php' з'являється в середині, # наприклад update.php / selection. Правило, яке ми використовуємо, є строгим, і дозволяє лише цей шаблон # з фронтним контролером update.php. Це дозволяє успадкованим псевдонімам шляху у вигляді # blog / index.php / legacy-path продовжити маршрут до вузлів Drupal. Якщо у вас немає таких шляхів, ви можете скористатися правилом laxer, наприклад: # location ~ .php (/ | $) {# Правило laxer продовжуватиме працювати, якщо Drupal використовує цей новий шаблон URL з фронтальними # контролерами, крім update.php у майбутньому випуску. розташування ~ '.php $ | ^ / update.php' (fastcgi_split_path_info ^ (. +?. php) (| /.*)$; #NOTE: Ви повинні мати "cgi.fix_pathinfo = 0;" в php.ini включають fastcgi_params; включають фрагменти / fastcgi-php.conf; fastcgi_param SCRIPT_FILENAME $ request_filename; fastcgi_intercept_errors на; fastcgi_pass unix: /run/php/php7.0-fpm.sock; } # Боротьба зі стилями? Цей маленький дорогоцінний камінь дивовижний. # location ~ ^ / sites /.*/ files / imagecache / {# Для Drupal <= 6 розташування ~ ^ / сайти /.*/ файли / стилі / {# Для Drpal> = 7 try_files $ uri @rewrite; } розташування ~ *. (js | css | png | jpg | jpeg | gif | ico) $ {закінчується макс; log_not_found off; }}

Збережіть файл і вийдіть з редактора.

Файл віртуального хоста Drupal був створений, тепер ми повинні його активувати, створивши символічне посилання на файл у каталозі "sites-enabled":

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

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

nginx -t
systemctl перезапустити nginx

Крок 7 - встановлення та налаштування Drupal

Ми повинні встановити Git і Drush, перш ніж ми почнемо з установки Drupal. Drush - це оболонка командного рядка та інтерфейс скриптів для Unix для Drupal. Встановіть його за допомогою apt наступної команди:

sudo apt-get install git drush-я

Потім введіть каталогу drupal8, який ми створили раніше, і завантажте Drupal за допомогою wget або drush. Я буду використовувати wget тут:

cd / var / www / drupal8
wget https://ftp.drupal.org/files/projects/drupal-8.1.10.tar.gz

Якщо ви хочете використовувати drush, запустіть команду нижче:

drush dl drupal-8

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

tar -xzvf drupal-8.1.10.tar.gz
mv drupal-8.1.10 / *.
rm -rf drupal-8.1.10

На наступному кроці ми налаштуємо файл налаштувань Drupal. З головного каталогу Drupal перейдіть до каталогу "sites / default" та скопіюйте два файли конфігурації "settings.php"І"services.yml"

cd сайти / за замовчуванням
cp default.settings.php settings.php
cp default.services.yml services.yml

Потім нам доведеться створити новий каталог із назвою "файли"Всередині каталогу" сайти / за замовчуванням ". Команда "chmod" гарантує, що для встановлення Drupal файли конфігурації та каталогу "files" можна записати.

mkdir файли /
chmod a + w *

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

Зверніть увагу, що це керівництво щойно було оновлено від Drupal 8.1.8 до 8.1.10 у команд, щоб включити останні оновлення безпеки для Drupal, випущені сьогодні, скріншоти все ще показують номер версії 8.1.8, оскільки інтерфейс не змінився. Ви завжди повинні використовувати останню стабільну версію Drupal для вашої установки та замініть номер версії в командах установки вище.

Виберіть мову, яку я буду використовувати "Англійський" тут.

Натисніть "Зберегти та продовжити".

Вибрати мову

Тепер виберіть тип установки. Ви можете використовувати стандартний або мінімальний тип. Я буду використовувати "стандарт".

Виберіть профіль установки Drupal

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

Конфігурація бази даних Drupal

Зачекайте, доки інсталяція не закінчиться.

Встановлення Drupal

Тепер нам потрібно налаштувати параметри профілю сайту, як-от назва сайту, користувача та пароль для адміністратора, електронна адреса і т.п.

Налаштуйте профіль сайту в Drupal

Тепер Drupal встановлено. Ви будете перенаправлені на домашню сторінку Drupal.

Установка Drupal завершена

Ви можете побачити повідомлення про помилку про дозволи файлів конфігурації drupal "settings.php" та "services.yml". Просто змініть дозвіл на них за допомогою наступних команд:

cd сайти / за замовчуванням /
chmod 644 settings.php services.yml

Тепер Drupal 8.1 встановлюється за допомогою Nginx та SSL на Ubuntu 16.04.

Висновок

Drupal - це безкоштовна платформа для керування контентом з відкритим кодом, заснована на PHP. Його можна використовувати для особистого блогу, приватної домашньої сторінки або корпоративного веб-сайту. Drupal поширюється під ліцензією GNU-GPL. Основний компонент Drupal називається "Drupal Core", і до цього часу спільнота Drupal розробила більше, ніж модулі 31.000, щоб продовжити. Поточна стабільна версія - 8.1.10. Друпал легко встановити та налаштувати, ми можемо використовувати Nginx або Apache як веб-сервер та PHP-FPM для обробки запитів PHP на сервері Drupal.

джерело

Залишити коментар

Цей сайт використовує Akismet для зменшення спаму. Дізнайтеся, як обробляються ваші дані коментарів.