Установка на ОС Linux
Установка и настройка окружения выполняется на машине с операционной системой Linux (Ubuntu, Debian).
PHP
Проверяем, установлен ли на целевой машине PHP:
Пример результата выполнения команды:
Если результат аналогичен примеру, а также демонстрирует, что на компьютере установлен PHP версии 8.1 или выше, можно переходить к следующему этапу установки.
Если версия PHP ниже 8.1 или пакет не установлен, необходимо обновить или установить его.
В случае ОС Астра Линукс требуется произвести обновление репозитория:
Установка пакета и модулей PHP
Выполните команду:
Установите необходимые модули:
php8.1-imagick
php8.1-pgsql
php8.1-fpm
php8.1-gd
php8.1-gd
php8.1-curl
php8.1-opcache самой новой версии (8.1.12-1ubuntu4.3).
php-yaml (2.0.2+1.3.1-4)
php-pear (1:1.10.13+submodules+notgz+2022032202-2)
php8.1-apcu
php8.1-ldap
PostgreSQL
Проверяем, установлен ли на целевой машине PostgreSQL:
Если версия PostgreSQL >= 13, то переходим к пункту Настройка базы данных.
В противном случае производим установку PostgreSQL:
После установки postgresql необходимо откорректировать конфигурационные файлы:
/etc/postgresql/14/main/postgresql.conf
— в этом файле изменения производятся только в том случае, если рассматривается возможность подключения к БД Idea Hub по сети.Находим строку:
И меняем значение, чтобы сервер БД слушал подключения на всех локальных интерфейсах:
Или чтобы сервер БД слушал подключения на конкретном интерфейсе:
/etc/postgresql/14/main/pg_hba.conf
Вносим следующие изменения в соответствии с политиками безопасности предприятия:
local all all md5
Позволяет любому пользователю локальной системы подключаться к базе данных "postgres", если он передает правильный пароль.
host all all 192.168.12.10/24 md5
Позволяет любому пользователю компьютера 192.168.12.10 подключаться к базе данных "postgres", если он передаёт правильный пароль.
Перезапускаем PostgreSQL:
Настройка базы данных
Войдем в psql под пользователем postgres:
Создаем нового пользователя PostgreSQL (вместо password указываем свой пароль):
Создаем базу данных и добавляем нужные привилегии:
Выход из psql:
Рестарт сервера:
Установка и настройка Drush (CLI административный модуль)
Создаем пользователя, из-под которого будут запускаться скрипты:
Добавляем его в группу www-data:
Создаем каталог для установки IH с определенными правами (группе и владельцу разрешено читать и писать) и устанавливаем владельцами этого каталога пользователя ideahub и группу www-data:
-m – устанавливает права доступа к создаваемым каталогам
-p – создает родительские каталоги с заданными правами
Установочный архив Idea Hub должен быть предварительно загружен в каталог /home/ideahub
.
Распаковываем архив в каталог /var/www/ideahub/:
Меняем владельца и группу для всех вложенных папок и файлов рабочего каталога:
Установка IdeaHub
В каталоге /var/www/ideahub/db
находится дамп базы данных /var/www/ideahub/db/ideahub_demo.sql.gz
(название файла может отличаться).
Восстанавливаем базу данных PostgreSQL из этого файла командой:
Будет предложено ввести пароль для пользователя primo_ideahub. Вводим пароль, установленный для этого пользователя в разделе Настройка базы данных.
После восстановления базы данных каталог
/var/www/ideahub/db
можно удалить.В каталоге
web/sites/default/
создаем папкуfiles
и настраиваем для нее права:В
/var/www/ideahub/
создаем каталогprivate
и настроиваем для него права:Входим в систему под служебным пользователем пользователем ideahub.
Копируем файл
/var/www/ideahub/config/settings.EXAMPLE.php
в/var/www/ideahub/config/settings.local.php
.После чего меняем в новом файле строки:
HOST, DATABASE_NAME, USER_NAME, PASSWORD
на установленные во время создания базы данных.Пример:
где 'password' — пароль пользователя primo_ideahub, установленный в секции Настройка базы данных.
Переходим в папку проекта:
Добавляем ссылку на
drush
глобально — для этого надо добавить данную строку в конец файла~/.bashrc
в домашнем каталоге пользователя, из под которого будут запускаться скрипты (в нашем случае /home/ideahub):Обновление данных вашего терминала:
Проверяем подключение к базе данных командой:
Результат должен быть примерно таким:
Если это так, то ваш сайт успешно установлен.
После этого очистите кеш командой:
Настройка окружения
Как установить максимальный размер загружаемого файла:
Заранее обговорите с компетентными лицами максимальный размер файлов, которые можно будет загружать.
Настройте конфиг Nginx. У nginx.conf (
/etc/nginx/nginx.conf
) надо поправить значение client_max_body_size. Для 100 мегабайт значением будет 100M.Настройте конфигурацию PHP. В php.ini (
/etc/php/8.1/fpm/php.ini
) надо поправить значения: upload_max_filesize и post_max_size. Для 100 мегабайт значением будет 100M.Далее следует настроить поля друпала. К примеру для поля "Документы", контент типа процесс, надо перейти по адресу
/admin/structure/types/manage/process/fields/node.process.field_docs
и редактировать значение в поле "Максимальный размер закачки". Для 100 мегабайт значением будет 100MB.
Установка и настройка web-сервера Nginx
Установка NGINX:
Копируем файл
./config/ideahub-nginx.conf
в каталог/etc/nginx/sites-available
.Редактируем файл
/etc/nginx/sites-available/ideahub-nginx.conf
, заменив в нём значение DOMAIN_NAME на имя домена, который вы будете использовать при подключении к серверу через браузер (в нашем примере ideahub.local):Cтроку
root /var/www/DOMAIN_NAME/web;
замените на:Найдите строки типа
fastcgi_pass unix:/run/php/php8.2-fpm.sock
и раскомментируйте ту, в которой указана ваша версия PHP.Добавьте сайт в список включенных командой:
Перезапустите Nginx:
Настройка доступа через браузер
Теперь вашей локальной машине нужно дать доступ к сайту.
Найдите файл
hosts
.В Windows он находится по адресу c:\windows\system32\drivers\etc\hosts; потребуется админский доступ.
В Linux он находится по адресу /etc/hosts, потребуется административный доступ.
Добавьте в конец файла строку типа:
Где
192.168.1.121
- это IP-адрес тестового стенда с Idea Hub, аideahub.local
- это домен, который вы указали ранее в секции "Установка и настройка web-сервера Nginx".
Установка обновлений для релиза 24.12
drush migrate:import params_ru --update
drush migrate:import library_items --execute-dependencies --update
drush ev "require_once (\Drupal::root() . '/../scripts/RandomContent.php');(new RandomContent())->createDashboards();"
Проверка установки
Войдите в систему как admin.
Перейдите на страницу статуса проекта - /admin/reports/status
При наличии "Ошибок" или "Предупреждений" об этом НЕОБХОДИМО сообщить разработчикам.
Разработчики сообщат о том какие вещи необходимо исправить и скорее всего подключатся для помощи.
Настройка прав доступа к каталогам и файлам
Файлы и каталоги подключения к Оркестратору
Добавить пользователя, от имени которого запускается cron в группу www-data. Предположим, что это пользователь с именем ideahub:
Назначить папке
scripts/orc-data-fetch
и всем файлам внутри владельца ideahub и группу www-data. Дать право на запись группе.
Дать права на запуск файла
scripts/orc-data-fetch/get_data.sh
пользователю и группе www-data:
Дать права на запись в каталог, указанный в переменной
OUTPUT_FOLDER
в файлеscripts/orc-data-fetch/.env
:
В командах выше, OUTPUT_FOLDER
нужно заменить на путь, который указан в файле scripts/orc-data-fetch/.env
.
Скрипт drupal_fix_permissions.sh
Данный скрипт устанавливает корректные доступы к файлам и каталогам IdeaHub. Для использования скрипта необходим sudo
доступ.
Стоит принять во внимание, что если какая-либо папка (private, files или другие) отсутствует скрипт не покажет ошибки.
Скачать здесь скрипт.
Ознакомиться с документацией встроенной в этот скрипт. Можно посмотреть, если запустить скрипт с параметром
--help
.Определить группу от которой работает ваш сервер, зачастую это
www-data
(найти универсальный способ определения).Желательно чтобы пользователь, который владеет папкой с проектом и пользователь, который запускает
cron
совпадали (нужно обозначить, что должен быть специальный пользователь, например ideahub, от имени которого и установка и обновления и пр.).Основные опции команды это:
-u
пользователь.-g
группа.-f
путь до папки private из папкиweb
.-p
полный путь до папкиweb
проекта.
В итоге команда будет иметь вид:
Last updated