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

Установите несколько экземпляров Drupal с помощью Nginx в Ubuntu 20.04


На этой странице

  1. Предпосылки
  2. Шаг 1. Установите необходимые зависимости
  3. Шаг 2. Установите Nginx и MariaDB
  4. Шаг 3. Установите PHP 7.4.
  5. Шаг 4. Создание базы данных Drupal
  6. Шаг 5. Загрузите Drupal
  7. Шаг 6. Настройте Nginx
  8. Шаг 7. Доступ к Drupal
  9. Заключение

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

В этом руководстве мы покажем вам, как развернуть несколько экземпляров Drupal с помощью Nginx в Ubuntu 20.04.

Предпосылки

  • Сервер под управлением Ubuntu 20.04.
  • Два допустимых доменных имени указывают на IP-адрес вашего сервера.
  • На сервере настроен пароль root.

Шаг 1. Установите необходимые зависимости

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

apt-get update -y
apt-get install gnupg2 software-properties-common unzip git wget -y

После установки всех зависимостей можно переходить к следующему шагу.

Шаг 2: Установите Nginx и MariaDB

Здесь мы будем размещать Drupal с Nginx. Поэтому Nginx должен быть установлен на вашем сервере. Если он не установлен, вы можете установить его с помощью следующей команды:

apt-get install nginx -y

После установки Nginx вам нужно будет установить последнюю версию MariaDB на свой сервер. По умолчанию последняя версия MariaDB не включена в стандартный репозиторий Ubuntu 20.04. Поэтому вам нужно будет добавить репозиторий MariaDB в APT.

Сначала добавьте ключ GPG с помощью следующей команды:

apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8

Затем добавьте репозиторий MariaDB с помощью следующей команды:

add-apt-repository "deb [arch=amd64,arm64,ppc64el] http://mariadb.mirror.liquidtelecom.com/repo/10.4/ubuntu $(lsb_release -cs) main"

После добавления репозитория обновите репозиторий и установите последнюю версию MariaDB с помощью следующей команды:

apt-get update -y
apt-get install mariadb-server -y

После установки сервера MariaDB вы можете перейти к следующему шагу.

Шаг 3: Установите PHP 7.4

Друпал не поддерживает PHP 8.0. Поэтому вам нужно будет установить PHP 7.4 в вашей системе. Вы можете установить PHP версии 7.4 с другими необходимыми расширениями с помощью следующей команды:

apt-get install php7.4 php7.4-fpm php7.4-gd php7.4-common php7.4-mysql php7.4-apcu php7.4-gmp php7.4-curl php7.4-intl php7.4-mbstring php7.4-xmlrpc php7.4-gd php7.4-xml php7.4-cli php7.4-zip -y

После установки всех пакетов отредактируйте файл php.ini и внесите некоторые изменения:

nano /etc/php/7.4/fpm/php.ini

Измените следующие строки:

date.timezone = Asia/Kolkata
memory_limit = 256M
upload_max_filesize = 64M
max_execution_time = 600
cgi.fix_pathinfo = 0

Сохраните и закройте файл, затем перезапустите PHP-FPM, чтобы применить изменения:

systemctl restart php7.4-fpm

Шаг 4: Создайте базу данных Drupal

Далее вам нужно будет создать базу данных и пользователя для обоих экземпляров Drupal.

Сначала подключитесь к MySQL с помощью следующей команды:

mysql

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

MariaDB [(none)]> create database drupal1db;
MariaDB [(none)]> create database drupal2db;

Затем создайте пользователя базы данных для обоих экземпляров Drupal с помощью следующей команды:

MariaDB [(none)]> create user  identified by 'password';

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

MariaDB [(none)]> grant all privileges on drupal1db.* to  identified by 'password';

Затем сбросьте привилегии и выйдите из MySQL с помощью следующей команды:

MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;

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

Шаг 5: Скачайте Друпал

Далее вам нужно будет скачать последнюю версию Drupal с официального сайта.

Сначала измените каталог на корневой каталог Nginx с помощью следующей команды:

cd /var/www/html

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

wget -q https://www.drupal.org/download-latest/tar.gz -O drupal-latest.tar.gz

Затем извлеките загруженный файл с помощью следующей команды:

tar -xf drupal-latest.tar.gz

Затем скопируйте извлеченный каталог в drupal1 и drupal2:

cp -r drupal-9.1.5 drupal1
cp -r drupal-9.1.5 drupal2

Затем установите правильное право собственности с помощью следующей команды:

chown -R www-data:www-data /var/www/html/drupal*

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

Шаг 6: Настройте Nginx

Далее вам нужно будет создать два файла конфигурации виртуального хоста Nginx для каждого экземпляра Drupal.

Сначала создайте файл конфигурации виртуального хоста Nginx для первого экземпляра Drupal:

nano /etc/nginx/conf.d/drupal1.conf

Добавьте следующие строки:

server {
    listen 80;
    root /var/www/html/drupal1;
    index  index.php index.html index.htm;
    server_name drupal1.example.com;

    location / {
    try_files $uri /index.php?$query_string;
    }

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

    location ~ [^/]\.php(/|$) {
         include snippets/fastcgi-php.conf;
         fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
         include fastcgi_params;
    }

    location ~ ^/sites/.*/files/styles/ { # For Drupal >= 7
               try_files $uri @rewrite;
        }

    location ~ ^(/[a-z\-]+)?/system/files/ { # For Drupal >= 7
        try_files $uri /index.php?$query_string;
        }
}

Сохраните и закройте файл, когда закончите.

Затем создайте файл конфигурации виртуального хоста Nginx для второго экземпляра Drupal:

nano /etc/nginx/conf.d/drupal2.conf

Добавьте следующие строки:

server {
    listen 80;
    root /var/www/html/drupal2;
    index  index.php index.html index.htm;
    server_name drupal2.example.com;

    location / {
    try_files $uri /index.php?$query_string;
    }

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

    location ~ [^/]\.php(/|$) {
         include snippets/fastcgi-php.conf;
         fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
         include fastcgi_params;
    }

    location ~ ^/sites/.*/files/styles/ { # For Drupal >= 7
               try_files $uri @rewrite;
        }

    location ~ ^(/[a-z\-]+)?/system/files/ { # For Drupal >= 7
        try_files $uri /index.php?$query_string;
        }
}

Сохраните и закройте файл, когда закончите, затем проверьте Nginx на наличие синтаксической ошибки с помощью следующей команды:

nginx -t

Вы должны увидеть следующий вывод:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Затем перезапустите службу Nginx, чтобы применить изменения:

systemctl restart nginx

Вы также можете проверить статус Nginx с помощью следующей команды:

systemctl status nginx

Вы должны получить следующий результат:

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2021-03-23 08:50:47 UTC; 6s ago
       Docs: man:nginx(8)
    Process: 19946 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 19959 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 19964 (nginx)
      Tasks: 2 (limit: 2353)
     Memory: 2.7M
     CGroup: /system.slice/nginx.service
             ??19964 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ??19965 nginx: worker process

Mar 23 08:50:47 ubunt4 systemd[1]: Starting A high performance web server and a reverse proxy server...
Mar 23 08:50:47 ubunt4 systemd[1]: Started A high performance web server and a reverse proxy server.

Шаг 7: Получите доступ к Drupal

Теперь откройте веб-браузер и введите URL-адрес http://drupal1.example.com или http://drupal2.example.com. Вы будете перенаправлены к мастеру веб-установки Drupal, как показано ниже:

Выберите свой язык и нажмите кнопку «Сохранить и продолжить». Вы должны увидеть следующую страницу:

Выберите стандартный тип установки и нажмите кнопку Сохранить и продолжить. Вы должны увидеть следующую страницу:

Укажите данные своей базы данных и нажмите кнопку «Сохранить и продолжить». Вы должны увидеть следующую страницу:

Укажите информацию о своем сайте и нажмите кнопку «Сохранить и продолжить». Вы должны увидеть панель инструментов Drupal на следующей странице:

Заключение

В предыдущем посте вы узнали, как развернуть несколько экземпляров Drupal с помощью Nginx на сервере Ubuntu 20.04. Теперь вы можете развернуть любое количество экземпляров Drupal на своем сервере. Вам просто нужно определить доменное имя и путь установки Drupal для каждого нового экземпляра Drupal. Не стесняйтесь спрашивать меня, если у вас есть какие-либо вопросы.