Установка NGINX, Composer & Drupal на чистый Linux

paragraph_text

Опишу как с нуля завести сайт на Linux & NGINX

  1. Установка NGINX, СУБД MariaDB и нужные библиотеки для PHP
  2. Установка Composer
  3. Настройка виртуального хоста для Drupal. Установка Composer Drupal Project.

    Очень полезно почитать: https://help.ubuntu.ru/wiki/nginx-phpfpm
paragraph_text
  1. Установка NGINX, СУБД MariaDB и нужные библиотеки для PHP

Как всегда первым делом обновляем систему до актуального состояния:
sudo apt update && sudo apt upgrade -y

  • Установка NGINX.

Сервер «Nginx» поставляется в одноименном пакете «nginx» и его установка производится  командой в терминале:
sudo apt-get install nginx nginx-extras -y

Проверяем работу веб-серввера, в браузере открываем начальную страницу нашего сервера по адресу
htpp://localhost

  • Библиотеки для PHP

Установку  «PHP-FPM» можно произвести, командой:
apt-get install php-cli php-common php-mysql php-gd php-fpm php-cgi php-pear php-dom

  • СУБД Mariadb

MariaDB есть в официальных репозиториях Ubuntu, и если вам нужна стабильная версия, то лучше устанавливать её именно оттуда. Для этого выполните:
sudo apt install mariadb-server mariadb-client

После того, как установка будет завершена, проверяем запущена ли база данных:
sudo systemctl status mariadb

Сразу после установки MariaDB ещё не готова к работе. Для обеспечения её безопасности необходимо выполнить команду:
sudo mysql_secure_installation

Теперь СУБД готова к работе. Создадим первую базу данных и пользователя с привилегиями Админа. Чтобы запустить клиент, выполните в терминале:
sudo mysql -u root -p
MariaDB [(none)]> create database drupal;
MariaDB [(none)]> CREATE USER 'drupal' IDENTIFIED BY 'password';

У нашего пользователя имя drupal и пароль password. Теперь дадим ему права на нашу базу данных:
GRANT ALL ON *.* TO 'drupal'@localhost IDENTIFIED BY 'password';

Работать в командной строке MariaDB не очень удобно, поэтому, если вам надо создавать много пользователей и таблиц, то можно установить ADMINER или PHPMyAdmin. Мне больше понравился своей простотой установки и спользования - ADMINER. Установка сводится к скачиванию РНР скрипта с сайта разработчика https://www.adminer.org/#download
Я ставлю обычно http://localhost/adminer для этого в дефолтной папке сайта на NGINX создаем папку adminer и скопируем туда скрипт adminer (скачаный по ссылке выше) и переименуем в index.php. Так же подправим конфигурацию дефолтного сайта:
sudo nano /etc/nginx/sites-available/default
корректируем строку с файлами по умолчанию, добавляем index.php. раскоментировать секцию для обработки PHP.

paragraph_text

2. Установка Composer

Рассмотрим как установить программу глобально для всей системы.
Подготовим зависимости для Composer:
sudo apt install curl php-cli php-mbstring git unzip

Вы можете скачивать файл установщика в любую папку, например, домашнюю:
curl -sS https://getcomposer.org/installer -o composer-setup.php

Указываем папку, куда нужно установить скрипт:
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer

Для проверки работы, вы можете выполнить команду:
composer

   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 1.9.1 2019-11-01 17:20:17

Если будет указана версия, то прога установлена УРА!!!!

paragraph_text

3. Настройка виртуального хоста для Drupal. Установка Composer Drupal Project.

  • Настройка виртуального хоста для Drupal.

В NGINX очень тонкая настройка для хостов на Drupal, образец беру с сайта разработчика NGINX https://www.nginx.com/resources/wiki/start/topics/recipes/drupal
Для начала нужно создать root папку для нашего сайта и файл конфигурации, например:
mkdir ~/projects/drup8

создаем конфигурационный файл для виртуального хоста NGINX:
sudo nano /etc/nginx/sites-available/drup8
вставляем содержимое из стандартного файла конфигурации Drupal для NGINX  https://www.nginx.com/resources/wiki/start/topics/recipes/drupal/, меняем следующие параметры:

    server_name drup8.loc;
    root /home/$USER/projects/drup8/web; ## <-- Your only path reference.    
    location ~* \.(txt|log)$ {
        allow 192.168.0.0/16; ## <-- пишем СВОЮ ПОДСЕТЬ!!!!
        deny all;
    }

 # PHP 7 socket location.
       fastcgi_pass unix:/var/run/php/php7.2-fpm.sock; ## <--ВНИМАТЕЛЬНО ПИШЕМ ПУТЬ И НАЗВАНИЕ ФЙЛА !! 

 

добавляем строку по рецепту с сайта https://groups.drupal.org/node/510563 для того чтоб не было ошибки при установки модулей

rewrite ^/core/authorize.php/core/authorize.php(.*)$ /core/authorize.php$1;

Сохраняем файл и активируем наш сайт.  Чтоб активировать наш виртуальный хост, нам нужно создать символическую ссылку между директорией sites-available, где лежит наш файл конфигурации, и sites-enabled.

sudo ln -s /etc/nginx/sites-available/drup8 /etc/nginx/sites-enabled/drup8

Для проверки работоспособности нашего хоста, создадим  простой скрипт на РНР. Создайте файл index.php в root папке сайтаи внесите туда 2 строки:
<?php
echo phpinfo();

в файле /etc/hosts добавьте строку:
127.0.0.1    drup8.loc

в браузере перейти по ссылке  должен открытся сайт с информацией об установленном РНР и его модулях

  • Установка Composer Drupal Project.

  1. В корне проекта
    composer create-project drupal-composer/drupal-project:8.x-dev some-dir --stability dev --no-interaction
  2. Удаляем временную папку
    cp -r some-dir/. ./ && rm -rf some-dir/
  3. Смена владельца и прав на папку сайта
    sudo chown -R www-data:www-data /home/$USER/projects/drup8/
    sudo chmod -R 755 /home/$USER/projects/drup8/

Теги

Комментарии

Добавить комментарий