Drupal является одной из ведущих платформ CMS с открытым исходным кодом в мире. Он гибкий, масштабируемый и может использоваться для создания различных типов веб-сайтов, от небольших личных блогов до крупных корпоративных, политических и правительственных сайтов.
Сейчас мы рассмотрим на примере, как установить Drupal 8.6 на CentOS 7.
Есть несколько способов установить Drupal. Это руководство охватывает шаги, необходимые для установки Drupal с использованием шаблона composer для проектов Drupal, называемого drupal-project.
Мы будем использовать Nginx в качестве веб-сервера, последнюю версию PHP 7.2 и MySQL / MariaDB в качестве сервера базы данных.
Предпосылки
- Перед началом установки убедитесь, что выполнены следующие условия:
- Иметь доменное имя, указывающее на IP вашего публичного сервера. Мы будем использовать example.com.
- Уже установлена Nginx .
- Имейте установленный сертификат SSL для вашего домена. Вы можете установить бесплатный SSL-сертификат Let's Encrypt.
- Вы вошли как пользователь с привилегиями sudo .
- Создать базу данных MySQL
Первым шагом является создание новой базы данных и учетной записи пользователя и предоставление соответствующих разрешений пользователю.
Если MySQL или MariaDB уже установлены на вашем сервере, вы можете пропустить этот шаг, в противном случае вы можете установить серверный пакет MariaDB 5.5 из репозиториев CentOS по умолчанию, набрав:
sudo yum install mariadb-server
Для новых установок MariaDB / MySQL рекомендуется выполнить mysql_secure_installation команду, чтобы повысить безопасность вашего сервера базы данных.
Войдите в оболочку MySQL, введя следующую команду и введите пароль при появлении запроса:
mysql -u root -p
Чтобы создать базу данных с именем drupal, именем пользователя drupaluser и предоставить пользователю необходимые разрешения, выполните следующие команды:
mysql> CREATE DATABASE drupal CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES ON drupal.* TO 'drupaluser'@'localhost' IDENTIFIED BY 'change-with-strong-password';
Установить PHP
CentOS 7 поставляется с PHP версии 5.4, которая устарела и больше не поддерживается. Рекомендуемая версия PHP для Drupal - PHP 7.2.
Чтобы сначала установить PHP 7.2 на CentOS 7, нам нужно включить репозитории EPEL и Remi:
sudo yum install epel-release yum-utils
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum-config-manager --enable remi-php72
После того, как репозитории включены для установки PHP 7.2 и всех необходимых расширений PHP, выполните следующие команды:
sudo yum install php-cli php-fpm php-mysql php-json php-opcache php-mbstring php-xml php-gd php-curl git
Мы установили PHP FPM, потому что мы будем использовать Nginx в качестве веб-сервера.
По умолчанию PHP FPM будет работать как пользователь apache на порту 9000. Мы изменим пользователя на nginx и переключимся с сокета TCP на сокет Unix. Для этого откройте /etc/php-fpm.d/www.conf файл и отредактируйте строки, выделенные синим цветом:
Убедитесь, что /var/lib/php каталог имеет правильное владение, используя следующую команду chown :
sudo chown -R root:nginx /var/lib/php
Наконец, включите и запустите службу PHP FPM:
sudo systemctl enable php-fpm
sudo systemctl start php-fpm
Установите Composer
Composer - менеджер зависимостей для PHP. Мы скачаем шаблон Drupal и установим все необходимые компоненты Drupal с помощью composer.
Следующая команда установит composer глобально, загрузив установщик Composer с помощью curl и переместив файл в /usr/local/bin каталог:
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
Проверьте установку, выполнив следующую команду, которая распечатает версию композитора:
composer --version
Вывод должен выглядеть примерно так:
Установить Drupal
Теперь, когда composer установлен, создайте новый проект Drupal, используя шаблон Drupal внутри /var/www/my_drupal каталога:
sudo /usr/local/bin/composer create-project drupal-composer/drupal-project:8.x-dev /var/www/my_drupal --stability dev --no-interaction
Команда выше загрузит шаблон, загрузит все необходимые пакеты php и запустит скрипты, необходимые для подготовки проекта к установке. Процесс может занять несколько минут, и в случае успеха конец вывода будет выглядеть так:
Следующим шагом является установка Drupal с использованием Drush. В приведенной ниже команде мы передаем базу данных MySQL и информацию о пользователе, которую мы создали в первом разделе:
cd /var/www/my_drupal
sudo vendor/bin/drush site-install --db-url=mysql://drupaluser:change-with-strong-password@localhost/drupal
Программа установки предложит вам следующее сообщение, просто нажмите Enter, чтобы продолжить.
После завершения установки скрипт напечатает административное имя пользователя и пароль. Вывод должен выглядеть примерно так:
Наконец, установите правильные разрешения, чтобы веб-сервер мог иметь полный доступ к файлам и каталогам сайта:
sudo chown -R nginx: /var/www/my_drupal
Настроить Nginx
К настоящему времени у вас уже должен быть установлен Nginx с SSL-сертификатом в вашей системе, если нет, проверьте предварительные условия для этого руководства.
Чтобы создать новый блок сервера для нашего нового проекта Drupal, мы будем использовать рецепт Nginx с официального сайта Nginx.
Откройте ваш текстовый редактор и создайте следующий файл:
sudo nano /etc/nginx/conf.d/example.com
Скрипт можете скопировать с документа по ссылке
https://docs.google.com/document/d/1mAq1WXsUJgSFnEfofES3zrmh9qajpP2JgKrq6FI89AU/edit?usp=sharing
Не забудьте заменить example.com доменом Drupal и указать правильный путь к файлам SSL-сертификатов
Перед перезапуском службы Nginx выполните тест, чтобы убедиться в отсутствии синтаксических ошибок:
sudo nginx -t
Перезапустите службу Nginx, чтобы изменения вступили в силу, набрав:
sudo systemctl restart nginx
Проверьте установку
Откройте браузер, введите домен и, если установка прошла успешно, появится экран, подобный следующему:
Вы можете войти в систему как администратор и начать настройку новой установки Drupal.
Установите Drupal Модули и Темы
Теперь, когда у вас установлен проект Drupal, вам нужно установить несколько модулей и тем. Модули и темы Drupal размещаются в собственном хранилище композиторов, которое drupal-project настраивает для нас из коробки.
Чтобы установить модуль или тему, все, что вам нужно сделать, это зайти cd в каталог проекта и набрать composer require drupal/module_or_theme_name. Например, если мы хотим установить модуль Pathauto, нам нужно выполнить следующую команду:
cd /var/www/my_drupal
sudo -u nginx /usr/local/bin/composer require drupal/pathauto
Предопределяя, sudo -u nginx мы запускаем команду как пользователь nginx
Как видно из приведенного выше вывода, composer также устанавливает все зависимости пакетов для нас.