導入
多くの場合、データ移行は、PHPアプリケーションの開発と展開中に必要なステップです。既存のデータを新しい環境に移行するには、データの完全性を確保するだけでなく、プロセスの効率と安定性を確保する必要があります。これは、Docker Compose、Nginx、Mariadbの組み合わせを使用して簡単に実現できます。この記事では、これらのツールを使用して、特定の操作ステップと構成例を介してデータをPHPアプリケーションに移行する方法を詳細に紹介します。
準備
Docker Composeは、構成ファイルを介して複数のサービスを均一に定義および開始できるマルチコンテナーアプリケーション管理ツールです。 Nginxは、対応するPHPコンテナにHTTP要求を転送する逆プロキシサーバーとして機能します。 MariadBは、アプリケーションデータを保存するデータベースサービスです。まず、サービスを定義するためにDocker Composeファイルを作成する必要があります。
Dockerは構成を構成します
Docker Compose Configurationファイルでは、NginxとMariadbの2つのサービスを定義する必要があります。これが基本的な構成の例です。
バージョン: '3'
サービス:
nginx:
画像:nginx
ポート:
-80:80
ボリューム:
- ./nginx.conf:/etc/nginx/conf.d/default.conf
Mariadb:
画像:Mariadb:10.5
環境:
-mysql_root_password = secret
ボリューム:
- ./data:/var/lib/mysql
この構成では、NGINXサービスは公式ミラーとマップポート80をホストポートに使用します。 MariaDBサービスは、MariaDBの公式画像を使用し、環境変数を通じてルートユーザーのパスワードを設定します。データディレクトリは、永続的なストレージ用にも取り付けられています。
nginx構成
次に、nginxを構成して、PHPアプリケーションコンテナにHTTPリクエストを正しく転送できることを確認する必要があります。 `nginx.conf`構成の単純化された例を次に示します。
サーバー{
匂いく80;
server_name localhost;
位置 / {
proxy_pass http:// php-app;
proxy_set_headerホスト$ host;
}
}
ここでは、すべてのHTTPリクエストをPHP-APPという名前のPHPコンテナに転送し、要求されたホストヘッダー情報を渡します。
サービスを開始します
構成が完了すると、次のコマンドでサービスを開始できます。
docker -compose up -d
これにより、NginxとMariadbのDockerコンテナが開始されます。 http:// localhostにアクセスして、nginxが適切に動作していることを確認できます。
データ移行
MySQLデータベースのエクスポートファイル「backup.sql」が既にあると、Mariadbコンテナにインポートするとします。次のコマンドを使用して、データベースのインポートを完了できます。
Docker exec -I<mariadb_container_name> mysql -uroot -p<password> <backup.sql
このコマンドでは、 Mariadbコンテナの名前です。これはルートユーザーのパスワードであり、 backup.sqlはインポートするデータベースバックアップファイルです。
通常のバックアップ
定期的にデータバックアップを実行するには、シンプルなシェルスクリプトを記述できます。
#!/bin/bash
Docker exec<mariadb_container_name> mysqldump -uroot -p<password><database_name> > backup.sql
このスクリプトは、 backup.sqlという名前のバックアップファイルを作成します。 Mariadbコンテナの名前です。ルートパスワードです。それはあなたがバックアップしたいデータベースの名前です。
要約します
Docker Compose、Nginx、MariadBを使用すると、PHPアプリケーションとデータベースを簡単にコンテナ化し、効率的なデータ移行とバックアップを有効にすることができます。コンテナ化されたアプリケーションは、展開と移行だけでなく、Nginxプロキシ転送を通じても便利であり、さまざまな環境間のデータ移行がより簡単で安定しています。