Файл описания хостинга может иметь формат YAML или JSON и содержит список учетных записей клиентов, подписок, дополнительных доменов, почтовых ящиков и так далее, которые надо перенести с исходного сервера. Вы можете найти примеры файлов описания хостинга здесь. В этом разделе мы расскажем о том, как задать ряд часто используемых параметров, чтобы обеспечить успех миграции.

Указание пути к данным веб-контента

Чтобы указать путь к данным веб-контента на исходном и целевом серверах, используйте следующие параметры в разделе subscriptions:

  • source_webspace_root — абсолютный путь к папке, содержащей все файлы, доступные клиенту на исходном сервере. Может быть задан только на уровне подписки (например, /home/vhosts/example.com).
  • source_document_root — абсолютный путь к папке, содержащей только файлы, доступные по HTTP. Может быть задан на уровне подписки, дополнительного домена или субдомена (например, /home/vhosts/example.com/httpdocs).
  • target_document_root — папка, которая содержит файлы, доступные по HTTP на целевом сервере. Путь указывается относительно корня подписки на целевом сервере. Может быть задан на уровне подписки, дополнительного домена или субдомена (например, data/www. Если имя домена — example.com, а папка виртуальных серверов в Plesk ? /var/www/vhosts, то абсолютный путь к корневой папке на целевом сервере будет /var/www/vhosts/example.com/data/www). Если не указывать этот параметр, будет использовано значение по умолчанию для Plesk.

Примечание: Если файл конфигурации не содержит информации о доступе к исходному серверу, папки source_webspace_root и source_document_root будут рассматриваться как локальные на целевом сервере.

Если вам необходимо исключить некоторые папки или файлы из миграции, используйте директиву exclude с параметрами source_webspace_root и source_document_root. Например:

subscriptions:
 -
 name: example.com
 source_webspace_root:
 path: /home/vhosts/example.com
 exclude:
 -
 /bin
 -
 /logs

Синтаксис правил исключения такой же, как используется в утилите rsync. Его описание можно найти в документации rsync — смотрите подробную информацию в разделе Include/Exclude Pattern Rules.

Если вам необходимо точно указать, в какой папке на целевом сервере будет расположен веб-контент из конкретной папки на исходном сервере, используйте сопоставление веб-файлов. Например:

subscriptions:
 -
 name: example.com
 target_document_root: data/www
 web_files:
 -
 source: /home/vhosts/example.com
 target: "{webspace_root}"
 -
 source: /home/vhosts/example.com/httpdocs
 target: "{document_root}"

Директива target используется, чтобы указать либо абсолютный путь на целевом сервере, либо строку формата, содержащую одну или более переменных-шаблонов из таблицы ниже.

Переменные-шаблоны и их значения для подписки — то есть для случая, когда элемент web_files находится непосредственно под элементом subscription:

Переменная-шаблон Подробнее Область применения
{anon_ftp_incoming} Путь к папке, доступной для загрузки данных по анонимному FTP Только Linux
{anon_ftp_pub} Путь к папке, доступной для чтения по анонимному FTP Только Linux
{cgi_bin} Путь к папке cgi-bin подписки Только Linux
{document_root} Путь к корневой папке подписки — папке, доступной по HTTP Linux и Windows
{logs} Путь к папке с журналами (доступа к Apache, ошибок и т.п.) Linux и Windows
{main_domain_private} Частная папка основного домена Только Windows
{main_domain_statistics} Папка со статистикой основного домена (AWStats, Webalizer и т.п.) Только Windows
{protected_dirs} Путь к папке с настройками защищенных папок Только Linux
{ssl_document_root} Путь к защищенной корневой папке подписки — папке, доступной по HTTPS Только Windows
{statistics} Путь к папке с файлами статистики (AWStats, Webalizer и т.п.) Только Linux
{webspace_idn} Имя подписки, закодированное в punycode Linux и Windows
{webspace_root} Путь к корню подписки Linux и Windows
{webspace} Название подписки Linux и Windows

Переменные-шаблоны и их значения для дополнительных доменов и субдоменов ? то есть для случаев, когда элемент web_files находится под элементом addon domain или subdomain:

Переменная-шаблон Подробнее Область применения
{cgi_bin} Путь к папке cgi-bin дополнительного домена/субдомена Только Linux
{document_root} Путь к корневой папке дополнительного домена/субдомена Linux и Windows
{logs} Путь к папке с журналами (доступа к Apache, ошибок и т.п.) дополнительного домена/субдомена Только Linux
{protected_dirs} Путь к папке с настройками защищенных папок дополнительного домена/субдомена Только Linux
{site_idn} Имя дополнительного домена/субдомена, закодированное в punycode Linux и Windows
{site} Имя дополнительного домена/субдомена Linux и Windows
{statistics} Путь к папке с файлами статистики (AWStats, Webalizer и т.п.) дополнительного домена/субдомена Linux и Windows
{webspace_anon_ftp_incoming} Путь к папке, доступной для загрузки данных по анонимному FTP, в родительской подписке Только Linux
{webspace_anon_ftp_pub} Путь к папке, доступной для чтения по анонимному FTP, в родительской подписке Только Linux
{webspace_cgi_bin} Путь к папке cgi-bin родительской подписки Только Linux
{webspace_document_root} Путь к корню родительской подписки Linux и Windows
{webspace_idn} Имя родительской подписки, закодированное в punycode Linux и Windows
{webspace_logs} Путь к папке с журналами (доступа к Apache, ошибок и т.п.) родительской подписки Linux и Windows
{webspace_protected_dirs} Путь к папке с настройками защищенных папок родительской подписки Только Linux
{webspace_root} Путь к корню подписки Linux и Windows
{webspace_ssl_document_root} Путь к защищенной корневой папке родительской подписки — папке, доступной по HTTPS Только Windows
{webspace_statistics} Путь к папке с файлами статистики (AWStats, Webalizer и т.п.) родительской подписки Только Linux
{webspace} Название родительской подписки Linux и Windows

Указание пути к данным почтового контента

Механизм переноса почтового контента с исходного сервера на целевой работает по-разному в Linux и в Windows.

В Linux вам надо указать информацию о почтовых ящиках, которые надо перенести, в разделе mail_users:

mail_users:
  -
    name: johndoe
    password: 123qwe
    directory: /var/qmail/mailnames/johndoe

Здесь «directory» означает абсолютный путь к папке, где хранится почтовый контент на исходном сервере, или куда он был помещен после переноса вручную на целевой сервер.

В Windows в файле описания хостинга ничего указывать не надо. Весь почтовый контент будет перенесен с использованием механизмов резервного копирования и восстановления Plesk.

Примечание: В Windows Plesk Migrator не имеет возможности импортировать почтовый контент, который был вручную перенесен на целевой сервер. Чтобы перенести почтовый контент, необходимо иметь доступ к исходному серверу.

Указание пути к базам данных

Plesk Migrator позволяет переносить базы данных MySQL и Microsoft SQL Server во время миграции с других платформ. Есть два способа копирования содержимого баз данных:

  • Скопировать содержимое напрямую, если имеется доступ к серверу баз данных.
  • Восстановить содержимое из файла дампа базы данных.

Для того, чтобы можно было скопировать содержимое напрямую с сервера баз данных, необходимо перечислить это содержимое в конфигурационном файле Plesk Migrator и указать информацию, необходимую для доступа к серверу. Используйте параметр server в разделе databases:

databases:
  -
    server: mysql-db
    name: wordpress_9
    users:
      -
        login: exdbuser1
        password: 123qwe
  -
    server: mssql-db
    name: drupal_2
    users:
      -
        login: exdbuser2
        password: 123qwe

или

-
 name: wordpress_9
 dump: wordpress_9.sql
 users:
   -
     login: exdbuser1

Для восстановления содержимого из файла дампа базы данных необходимо, чтобы дамп был создан в специальном формате:

  • Для MySQL дамп можно создать, например, с помощью утилиты mysqldump.
  • Для Microsoft SQL Server используйте конструкцию «BACKUP» языка T-SQL.

Чтобы восстановить дамп, укажите опцию dump, как в этом примере:

-
 name: wordpress_9
 dump: wordpress_9.sql
 user:
 login: exdbuser1

Примечание: Перенос баз данных Microsoft SQL Server возможен, только если имя хоста экземпляра Microsoft SQL Server на исходном сервере может быть определено с целевого сервера.