Перенос Drupal на другую машину

Перенос Drupal на другую машину.

Содержание

1 Прагматика

  • При замене операционной системы возникает необходимость переноса сервисов на другую машину.

2 Порядок миграции

2.1 Настройка машины

2.1.1 Необходимое программное обеспечение

  • Установите необходимое для Drupal программное обеспечение:
    1dnf install gd
    2dnf install php-gd
    3dnf install php-pecl-apcu
    

2.1.2 Drush

  1. Drush 8

    • Загрузите нужную версию drush из https://github.com/drush-ops/drush/releases:
      1cd /usr/local/bin/
      2wget https://github.com/drush-ops/drush/releases/download/8.4.8/drush.phar -O drush
      3chmod +x drush
      

2.1.3 Запуск базы данных

  1. Mysql

    • Запустите базу данных:

      1systemctl enable --now mariadb.service
      
    • Поправьте уровень безопасности:

      1mysql_secure_installation
      
      • Не надо переключаться на сокет и менять пароль пользователя root.
  1. Postgresql

    • Запустите базу данных:
      1systemctl enable --now postgresql.service
      

2.1.4 Настройка сети

  • Откройте необходимые порты:
    1firewall-cmd --add-service=http --permanent
    2firewall-cmd --add-service=https --permanent
    3firewall-cmd --reload
    

2.1.5 Настройка Selinux

  • Зададим переключатели для Selinux:
    1setsebool -P httpd_can_network_connect 1
    2setsebool -P httpd_can_sendmail 1
    

2.2 Перенос файлов

  • Перейдите на новой машине в каталог для файлов www-сервера:
    1cd /var/www/html
    
  • Скопируйте каталог с файлами со старой машины:
    1rsync -av -HS -AX root@<oldhost>:/var/www/html/<oldsite> . --delete
    
  • Перегенерите метки Selinux:
    1restorecon -vR /var/www/
    

2.3 Перенос базы данных

2.3.1 Создание дампа базы данных

  • На исходной машине необходимо создать дамп базы данных.
  1. Mysql

    • Создайте дамп базы:
      1mysqldump --quote-names --add-drop-table -u root -p  databasename > mysql-databasename-`date +%Y%m%d-%H%M%S`.sql
      
  1. Postgres

    • Создайте дамп базы:
      1su - postgres -c "pg_dump -U postgres > pg-databasename-`date +%Y%m%d-%H%M%S`.sql
      

2.3.2 Создание базы данных на новой машине

  1. Mysql

    • База данных должна быть создана с использованием кодировки UTF-8 (Unicode) (utf8mb4) и параметров сортировки utf8mb4_unicode_ci или utf8mb4_general_ci.

      • Разница между двумя сопоставлениями связана с тем, насколько быстро они сравнивают символы и сортируют их.
      • utf8mb4_general_ci немного быстрее, однако utf8mb4_unicode_ci более точен для более широкого диапазона символов.
    • Необходимые значения:

      • databasename — имя базы данных;
      • username — имя пользователя базы данных;
      • password — пароль пользователя базы данных.
    • Создайте новую базу данных для вашего сайта (измените username и databasename):

      1mysql -u root -p -e "CREATE DATABASE databasename CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci"
      
    • Подключитесь к базе данных:

      1mysql -u root -p
      
      • Создайте пользователя и установите разрешения:
        1CREATE USER username@localhost IDENTIFIED BY 'password';
        2GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES ON `databasename`.* TO 'username'@'localhost' IDENTIFIED BY 'password';
        
      • Сбросьте привилегии:
        1FLUSH PRIVILEGES;
        
      • Закройте терминал базы данных, набрав exit.
  1. Postgres

    • Создайте пользователя базы данных:
      1createuser --pwprompt --encrypted --no-adduser --no-createdb username
      
    • Создайте базу данных:
      1createdb --encoding=UNICODE --owner=username databasename
      

2.3.3 Восстановление дампа базы данных

  1. Mysql

    • Восстановите базу данных:
      1mysql -u root -p databasename < mysql-databasename.sql
      
  1. Postgres

    • Восстановите базы данных:
      1psql -U postgres -d databasename < pg-databasename.sql
      

Дмитрий Сергеевич Кулябов
Дмитрий Сергеевич Кулябов
Профессор кафедры теории вероятностей и кибербезопасности

Мои научные интересы включают физику, администрирование Unix и сетей.

Похожие