How to Install Drupal 8 on CentOs 7 / Redhat (RHEL) 7
Оглавление:
- Предпосылки
- Создать базу данных MySQL
- Установить PHP
- Установите Composer
- Установить Drupal
- Настроить Nginx
- Проверьте установку
- Установите Drupal Модули и Темы
- Обновление Drupal Core
- Вывод
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
и предоставить пользователю необходимые разрешения, выполните следующие команды:
CREATE DATABASE drupal CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
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
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
и отредактируйте строки, выделенные желтым цветом:
… user = nginx… group = nginx… listen = /run/php-fpm/www.sock… listen.owner = nginx listen.group = nginx
Убедитесь, что каталог
/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
Вывод должен выглядеть примерно так:
Composer version 1.8.4 2019-02-11 10:52:10
Установить 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 и запустит скрипты, необходимые для подготовки проекта к установке. Процесс может занять несколько минут, и в случае успеха конец вывода будет выглядеть так:
Create a sites/default/settings.php file with chmod 0666 Create a sites/default/files directory with chmod 0777
Следующим шагом является установка 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, чтобы продолжить.
You are about to DROP all tables in your 'drupal' database. Do you want to continue? (yes/no):
После завершения установки скрипт напечатает административное имя пользователя и пароль. Вывод должен выглядеть примерно так:
Starting Drupal installation. This takes a while. Installation complete. User name: admin User password: frxka2Db5v
Наконец, установите правильные разрешения, чтобы веб-сервер мог иметь полный доступ к файлам и каталогам сайта:
sudo chown -R nginx: /var/www/my_drupal
Настроить Nginx
К настоящему времени у вас уже должен быть установлен Nginx с SSL-сертификатом в вашей системе, если не проверены предварительные условия для этого урока.
Чтобы создать новый блок сервера для нашего нового проекта Drupal, мы будем использовать рецепт Nginx с официального сайта Nginx.
Откройте ваш текстовый редактор и создайте следующий файл:
sudo nano /etc/nginx/conf.d/example.com
/etc/nginx/conf.d/example.com
# Redirect HTTP -> HTTPS server { listen 80; server_name www.example.com example.com; include snippets/letsencrypt.conf; return 301 https://example.com$request_uri; } # Redirect WWW -> NON WWW server { listen 443 ssl http2; server_name www.example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; return 301 https://example.com$request_uri; } server { listen 443 ssl http2; server_name example.com; root /var/www/my_drupal/web; # SSL parameters ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; # log files access_log /var/log/nginx/example.com.access.log; error_log /var/log/nginx/example.com.error.log; location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { allow all; log_not_found off; access_log off; } location ~ \..*/.*\.php$ { return 403; } location ~ ^/sites/.*/private/ { return 403; } # Block access to scripts in site files directory location ~ ^/sites/+/files/.*\.php$ { deny all; } # Block access to "hidden" files and directories whose names begin with a # period. This includes directories used by version control systems such # as Subversion or Git to store control files. location ~ (^|/)\. { return 403; } location / { try_files $uri /index.php?$query_string; } location @rewrite { rewrite ^/(.*)$ /index.php?q=$1; } # Don't allow direct access to PHP files in the vendor directory. location ~ /vendor/.*\.php$ { deny all; return 404; } location ~ '\.php$|^/update.php' fastcgi_split_path_info ^(.+?\.php)(# Fighting with Styles? This little gem is amazing. # location ~ ^/sites/.*/files/imagecache/ { # For Drupal <= 6 location ~ ^/sites/.*/files/styles/ { # For Drupal >= 7 try_files $uri @rewrite; } # Handle private files through Drupal. Private file's path can come # with a language prefix. location ~ ^(/+)?/system/files/ { # For Drupal >= 7 try_files $uri /index.php?$query_string; } location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ { try_files $uri @rewrite; expires max; log_not_found off; } }
Не забудьте заменить example.com доменом Drupal и указать правильный путь к файлам сертификатов SSL. Все HTTP-запросы будут перенаправлены на HTTPS. Фрагменты, используемые в этой конфигурации, созданы в этом руководстве.
Перед перезапуском службы Nginx выполните тест, чтобы убедиться в отсутствии синтаксических ошибок:
sudo nginx -t
Перезапустите службу Nginx, чтобы изменения вступили в силу, набрав:
Проверьте установку
Откройте браузер, введите домен и, если установка прошла успешно, появится экран, подобный следующему:
Вы можете войти в систему как администратор и начать настройку новой установки Drupal.
Установите Drupal Модули и Темы
Теперь, когда у вас установлен проект Drupal, вам нужно установить некоторые модули и темы. Модули и темы Drupal размещаются в собственном хранилище композиторов, которое drupal-project настраивает для нас из коробки.
Чтобы установить модуль или тему, все, что вам нужно сделать, это
composer require drupal/module_or_theme_name
в каталог проекта и набрать
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
Using version ^1.3 for drupal/pathauto./composer.json has been updated > DrupalProject\composer\ScriptHandler::checkComposerVersion Loading composer repositories with package information Updating dependencies (including require-dev) Package operations: 3 installs, 0 updates, 0 removals - Installing drupal/token (1.5.0): Downloading (100%) - Installing drupal/ctools (3.2.0): Downloading (100%) - Installing drupal/pathauto (1.3.0): Downloading (100%) Package phpunit/phpunit-mock-objects is abandoned, you should avoid using it. No replacement was suggested. Writing lock file Generating autoload files > DrupalProject\composer\ScriptHandler::createRequiredFiles
Как видно из приведенного выше вывода, composer также устанавливает для нас все зависимости пакета.
Обновление Drupal Core
Перед обновлением всегда полезно сделать резервную копию ваших файлов и базы данных. Вы можете использовать модуль «Резервное копирование и миграция» или создать резервную копию базы данных и файлов вручную.
Для резервного копирования файлов установки вы можете использовать следующую команду rsync, конечно, вам нужно будет указать правильный путь к каталогу установки:
sudo rsync -a /var/www/my_drupal/ /var/www/my_drupal_$(date +%F)
Для резервного копирования базы данных мы можем использовать стандартную команду
mysqldump
:
mysqldump -u root -p > /var/www/my_drupal_database_$(date +%F).sql
или
drush sql-dump
:
cd /var/www/my_drupal
vendor/bin/drush sql-dump > /var/www/my_drupal_database_$(date +%F).sql
Теперь, когда мы создали резервную копию, мы можем продолжить и обновить все основные файлы Drupal, выполнив следующую команду:
sudo -u nginx /usr/local/bin/composer update drupal/core webflo/drupal-core-require-dev symfony/* --with-dependencies
Вывод
Поздравляем, вы успешно установили Drupal 8 с помощью composer и узнали, как устанавливать модули и темы. Теперь вы можете начать настраивать свой сайт. Руководство пользователя Drupal 8 - хорошая отправная точка, чтобы узнать больше о том, как управлять вашей установкой Drupal. Также не забудьте посетить шаблонный проект Drupal Composer на Github.
Centos Drupal MySQL Мариадб CMS Nginx композиторРуководство по привратнику: как с его помощью установить и установить приложения Mac
Узнайте больше о Gatekeeper и о том, как использовать его для установки самых безопасных приложений на ваш Mac.
Как установить, установить принтер hp officejet 6500a plus "все в одном"
Узнайте, как настроить и установить принтер HP Officejet 6500A Plus «все в одном».
Как установить и настроить сервер NFS на Centos 8
В этом руководстве вы пройдете шаги, необходимые для настройки сервера NFSv4 в CentOS 8. Мы также покажем вам, как смонтировать файловую систему NFS на клиенте.







