Как мне переместить сайт с сервера на другой?
Я пытаюсь переместить сайт Drupal 8, но получаю следующую ошибку:
На веб-сайте произошла непредвиденная ошибка. Пожалуйста, повторите попытку позже.
Исключение InvalidArgumentException: Класс "\Drupal\system\Контроллер\http4xxcontroller" не существует. в Drupal\Core\DependencyInjection\classresolver->getinstancefromdefinition() (строка 29 из core/lib/Drupal/Core/DependencyInjection/ClassResolver.php).
Как правильно переместить сайт Drupal 8 с сервер к другому?
Что я сделал, так это импортировал базу данных, переместил файлы и изменил настройки подключения к базе данных.
2 answers
В двух словах, перемещение веб-сайта Drupal с одного хоста на другой - это всего лишь вопрос перемещения файлов и базы данных, а затем их соединения.
Однако есть несколько вещей, которые вам необходимо учитывать:
Серверные среды должны быть как можно ближе друг к другу. Таким образом, вы избежите любых ошибок, которые являются результатом наличия различного программного обеспечения/конфигурации на серверах производства и разработки. Сравните версию PHP, версию MySQL, Apache модули и настройка всех этих компонентов.
Права доступа к файлам должны быть настроены правильно. Я видел проблемы, вызванные этим, десятки раз. Короче говоря, пользователь Apache должен иметь достаточно разрешений для доступа и работы с вашим сайтом Drupal. В противном случае он не сможет записывать и даже читать файлы в некоторых случаях. Подробнее о том, как обеспечить правильные права доступа к файлам , читайте здесь.
Если вы делаете это вручную через FTP, убедитесь, что все файлы переданный. Часто бывает так, что один из файлов не был загружен полностью. Обычно это приводит к повреждению сайта Drupal и случайным ошибкам. Другими способами переноса веб-сайта D8 являются Drush, Git или просто сжатие всего каталога и использование
wget
на другом сервере для передачи его непосредственно с сервера на сервер.Вам нужно будет очистить все тайники. Предпочтительно, чтобы при переносе базы данных у вас не была включена агрегация CSS/JS и кэширование страниц. Вы можете сделать это через SQL/phpMyAdmin. Смотрите этот ответ для получения дополнительной информации.
Обновите надежные узлы в файле
/sites/default/settings.php
.Как только вы сможете получить доступ к своему веб-сайту, обновите путь к временному каталогу по адресу
/admin/config/media/file-system
, а также любые другие настройки (например, модулей contrib), в которых хранятся пути к серверу/доменное имя.
Смотрите также документы о переносе сайта D7. Большинство предметов по-прежнему применимы для D8.
Если вы будете следовать приведенным выше рекомендациям, вы избежите большинство проблем. Если у вас все еще возникают проблемы после миграции, опубликуйте здесь точные сообщения журнала, которые вы получаете.
Что касается ошибки, которую вы уже опубликовали: я бы убедился, что все файлы там, и что ваш кэш очищен, прежде чем делать что-либо еще.
Надеюсь, это поможет.
Я получил ту же ошибку при переносе Drupal 8 на локальный хост.
В моем случае я нашел решение, посетив mysite/core/install.php местоположение.
Там я увидел подробную ошибку: при резервном копировании из /admin/config/development/backup_migrate некоторые таблицы отсутствовали. Поэтому я создал резервную копию полной базы данных из phpmyadmin, и проблема была решена.