Drupal - популярная бесплатная система управления контентом. Она помогает создавать и управлять веб-сайтами, начиная с простых блогов и заканчивая сложными корпоративными приложениями. Drupal предоставляет гибкую и расширяемую платформу для создания и организации контента, управления правами пользователей и настройки внешнего вида и функциональности веб-сайтов.
Подготовка
Вам понадобится сервер с установленным LAMP, вы можете подготовить его самостоятельно или использовать предустановленные варианты в нашем VPS-сервисе.
В этой инструкции мы будем использовать сервер с предустановленным LAMP на Ubuntu 20.04.
Настройка Apache и PHP
Как обычно обновимся:
sudo apt update
sudo apt upgrade
Сначала давайте проверим какая версия установлена.
php -version
При выполнении этой команды будет отображена текущая установленная версия PHP. Проверка версии PHP важна для обеспечения совместимости, поскольку определенные версии Drupal могут требовать последние версии PHP для работы.
Более новые версии требуют PHP 8 и новее, давайте обновим его.
К сожалению, версия, которая нам нужна, отсутствует в репозитории по умолчанию, поэтому давайте добавим другой репозиторий, введя следующие команды:
sudo dpkg -l | grep php | tee packages.txt
sudo add-apt-repository ppa:ondrej/php#
Подтвердите, нажатием Enter, когда вам будет предложено.
Теперь вам нужно установить PHP и его модули, необходимые для работы Drupal:
sudo apt update
sudo apt install php8.2 php8.2-cli
sudo apt install php8.2-fpm
sudo apt install php8.2-{bcmath,fpm,xml,mysql,zip,intl,ldap,gd,cli,bz2,curl,mbstring,pgsql,opcache,soap,cgi}
Удалите более старую версию:
sudo apt purge php7.4*
После удаления старой версии включите новую:
sudo a2enconf php8.2-fpm
Эта команда включает модуль перезаписи, который необходим для функциональности "чистых" URL Drupal и позволяет переписывать URL в соответствии с определенными правилами. Включение этого модуля позволяет Apache интерпретировать и обрабатывать правила перезаписи URL, указанные в файле .htaccess Drupal. "Чистые" URL предоставляют более дружественную для пользователей и поисковых систем структуру для веб-сайтов Drupal.
sudo a2enmod rewrite
systemctl reload apache2
Теперь внесем некоторые настройки в файл /etc/php/8.2/apache2/php.ini
Найдите эти параметры и проверьте, что они выключены:
expose_php = Off
. . .
allow_url_fopen = Off
Установка expose_php в значение Off отключает отображение информации о версии PHP в заголовках HTTP-ответа. Скрытие версии PHP усиливает безопасность вашей системы, предотвращая возможные атаки, нацеленные на конкретные уязвимости, связанные с известной версией PHP.
Аналогично, установка allow_url_fopen в значение Off отключает возможность открывать удаленные файлы с помощью URL. Это мера безопасности, направленная на снижение риска подключения вредоносных файлов или выполнения неавторизованных удаленных сценариев. Отключение этой функции предотвращает потенциальные уязвимости безопасности, связанные с доступом к файлам по сети. Внесение этих изменений позволяет повысить безопасность путем ограничения отображения информации о версии PHP и предотвращения выполнения потенциально небезопасных удаленных файлов.
Теперь давайте еще раз перезагрузим Apache.
systemctl reload apache2
Настройка MySQL
Как и для практически любого другого веб-сайта, Drupal потребуется собственная база данных, давайте настроим ее:
mysql -u root -p
Введите пароль.
CREATE DATABASE drupaldb;
CREATE USER 'drupaluser'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON drupaldb.* TO 'drupaluser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Сделано.
Установка Drupal
Перейдите в каталог:
cd /var/www/html/
Эта папка является типичным местом для хранения веб-контента. Обычно она называется "DocumentRoot" (корневой каталог документов). Когда пользователь открывает веб-сайт, размещенный на сервере Apache, сервер берет необходимые файлы из этого каталога.
Скачайте Drupal с помощью следующей команды
sudo wget https://www.drupal.org/download-latest/tar.gz
Извлеките архив:
sudo tar -zxvf tar.gz
Запустите команду и запомните каталог в который были извлечены файлы
Файл /etc/apache2/sites-available/000-default.conf представляет собой .config файл по умолчанию, в котором указываются параметры для виртуального хоста.
Откройте его и отредактируйте следующим образом, обычно заменяя имя сервера на ваше имя хоста или IP-адрес вашего сервера Drupal. Это позволяет Apache правильно маршрутизировать входящие запросы на эту страницу и предоставлять соответствующий веб-контент. DocumentRoot указывает путь к файлам веб-сайта.
<VirtualHost *:80>
ServerName www.example.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/drupal-10.0.9
<Directory /var/www/html/>
AllowOverride All
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Теперь вам понадобится подставить шаблон настроек чтобы вам не пришлось всё настраивать самостоятельно
mkdir /var/www/html/drupal-10.0.9/sites/default/files
cp /var/www/html/drupal-10.0.9/sites/default/default.settings.php /var/www/html/drupal-10.0.9/sites/default/settings.php
Дадим необходимые разрешения для установки
sudo chmod -R 775 /var/www/html/drupal-10.0.9/
sudo chown -R :www-data /var/www/html/drupal-10.0.9/*
Не забудьте перезагрузить Apache
Веб установка
После открытия адреса вашего сервера в веб-браузере вы увидите интерфейс веб-установки, выберите язык, затем тип установки. На следующем шаге вы увидите список ошибок, если они есть, и предложения по их устранению. Если все в порядке, то этот экран будет пропущен, и вам будет предложено ввести настройки базы данных, которые вы настроили ранее в MySQL.
А также другие необходимые данные вроде имени сайта и аккаунта администратора.
После завершения установки вы увидите страницу приветствия Drupal, и ваш веб-сайт будет готов к использованию
Последнее что осталось исправить изменения в правах доступа:
sudo chmod 644 /var/www/html/drupal-10.0.9/sites/default/settings.php
Заключение
Это базовая инструкция по установке Drupal на сервере Ubuntu с установленным LAMP. Обратите внимание, что это только начало и вам может потребоваться дополнительная настройка в соответствии с вашими потребностями и требованиями веб-сайта.