Как мне переместить сайт с сервера на другой?


Я пытаюсь переместить сайт Drupal 8, но получаю следующую ошибку:

На веб-сайте произошла непредвиденная ошибка. Пожалуйста, повторите попытку позже.

Исключение InvalidArgumentException: Класс "\Drupal\system\Контроллер\http4xxcontroller" не существует. в Drupal\Core\DependencyInjection\classresolver->getinstancefromdefinition() (строка 29 из core/lib/Drupal/Core/DependencyInjection/ClassResolver.php).

Как правильно переместить сайт Drupal 8 с сервер к другому?

Что я сделал, так это импортировал базу данных, переместил файлы и изменил настройки подключения к базе данных.

Author: Community, 2016-03-08

2 answers

В двух словах, перемещение веб-сайта Drupal с одного хоста на другой - это всего лишь вопрос перемещения файлов и базы данных, а затем их соединения.

Однако есть несколько вещей, которые вам необходимо учитывать:

  1. Серверные среды должны быть как можно ближе друг к другу. Таким образом, вы избежите любых ошибок, которые являются результатом наличия различного программного обеспечения/конфигурации на серверах производства и разработки. Сравните версию PHP, версию MySQL, Apache модули и настройка всех этих компонентов.

  2. Права доступа к файлам должны быть настроены правильно. Я видел проблемы, вызванные этим, десятки раз. Короче говоря, пользователь Apache должен иметь достаточно разрешений для доступа и работы с вашим сайтом Drupal. В противном случае он не сможет записывать и даже читать файлы в некоторых случаях. Подробнее о том, как обеспечить правильные права доступа к файлам , читайте здесь.

  3. Если вы делаете это вручную через FTP, убедитесь, что все файлы переданный. Часто бывает так, что один из файлов не был загружен полностью. Обычно это приводит к повреждению сайта Drupal и случайным ошибкам. Другими способами переноса веб-сайта D8 являются Drush, Git или просто сжатие всего каталога и использование wget на другом сервере для передачи его непосредственно с сервера на сервер.

  4. Вам нужно будет очистить все тайники. Предпочтительно, чтобы при переносе базы данных у вас не была включена агрегация CSS/JS и кэширование страниц. Вы можете сделать это через SQL/phpMyAdmin. Смотрите этот ответ для получения дополнительной информации.

  5. Обновите надежные узлы в файле /sites/default/settings.php.

  6. Как только вы сможете получить доступ к своему веб-сайту, обновите путь к временному каталогу по адресу /admin/config/media/file-system, а также любые другие настройки (например, модулей contrib), в которых хранятся пути к серверу/доменное имя.

Смотрите также документы о переносе сайта D7. Большинство предметов по-прежнему применимы для D8.


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

Что касается ошибки, которую вы уже опубликовали: я бы убедился, что все файлы там, и что ваш кэш очищен, прежде чем делать что-либо еще.

Надеюсь, это поможет.

 10
Author: Aram Boyajyan, 2017-04-13 12:47:02

Я получил ту же ошибку при переносе Drupal 8 на локальный хост.

В моем случае я нашел решение, посетив mysite/core/install.php местоположение.

Там я увидел подробную ошибку: при резервном копировании из /admin/config/development/backup_migrate некоторые таблицы отсутствовали. Поэтому я создал резервную копию полной базы данных из phpmyadmin, и проблема была решена.

 1
Author: al.bel, 2019-03-28 12:52:25