web-dev-qa-db-ja.com

サイトをサーバーから別のサーバーに移動するにはどうすればよいですか?

Drupal 8サイトを移動しようとしていますが、次のエラーが発生します:

Webサイトで予期しないエラーが発生しました。後でもう一度やり直してください。

InvalidArgumentException:クラス「\ Drupal\system\Controller\Http4xxController」は存在しません。 Drupal\Core\DependencyInjection\ClassResolver-> getInstanceFromDefinition()内(core/lib/Drupal/Core/DependencyInjection/ClassResolver.phpの29行目)。

Drupal 8サイトをサーバーから別のサイトに適切に移動するにはどうすればよいですか?

データベースのインポート、ファイルの移動、データベース接続設定の変更を行いました。

7
John Chan

簡単に言えば、Drupal Webサイトを1つのホストから別のホストに移動することは、ファイルとデータベースを移動し、2つを接続することだけです。

ただし、考慮すべき点がいくつかあります。

  1. サーバー環境は、可能な限り互いに近づける必要があります。このようにして、本番サーバーと開発サーバーで異なるソフトウェア/構成を使用した結果生じるエラーを回避します。 PHPバージョン、MySQLバージョン、Apacheモジュール、およびこれらすべてのコンポーネントの設定を比較します。

  2. ファイルの権限を適切に設定する必要があります。私はこの数十回に起因する問題を見てきました。つまり、Apacheユーザーは、Drupal Webサイトにアクセスして操作するための十分な権限を持っている必要があります。そうしないと、場合によっては、ファイルの書き込みや読み取りさえできなくなります。詳細については、こちらをご覧ください。正しいファイル権限を保護する方法 ここ

  3. FTP経由でこれを手動で行う場合は、すべてのファイルが転送されていることを確認してください。ファイルの1つが完全にアップロードされなかったことがよくあります。これは通常、壊れたDrupalサイトおよびランダムエラーになります。D8Webサイトを移行する他の方法は、Drush、Git、または単にディレクトリ全体を圧縮し、他のサーバーでwgetを使用してサーバーからサーバーに直接転送します。

  4. すべてのキャッシュをクリアする必要があります。データベースを移行するときは、CSS/JS集約とページキャッシュをオンにしないことが望ましいです。 SQL/phpMyAdminを使用してこれを行うことができます。詳細は this 回答を参照してください。

  5. /sites/default/settings.phpファイルの信頼できるホストを更新します。

  6. ウェブサイトにアクセスできるようになったら、/admin/config/media/file-systemの一時ディレクトリパスと、サーバーパス/ドメイン名を保存するその他の設定(たとえば、投稿モジュール)を更新します。

D7サイトの移行に関するドキュメント も参照してください。ほとんどのアイテムは引き続きD8に適用されます。


上記のガイドラインに従えば、ほとんどの問題を回避できます。移行後も問題が解決しない場合は、受け取った正確なログメッセージをここに投稿してください。

既に投稿したエラーについて:すべてのファイルが存在すること、および他の操作を行う前にキャッシュがクリアされていることを確認します。

お役に立てれば。

10
Aram Boyajyan

Drupal 8をlocalhostに移植するときにも同じエラーが発生しました。

私の場合、mysite/core/install.phpの場所にアクセスして解決策を見つけました。

そこで詳細なエラーが発生しました。/admin/config/development/backup_migrateからバックアップすると、いくつかのテーブルが欠落していました。 phpmyadminからデータベース全体をバックアップしたので問題は解決しました。

1
al.bel