Docker Compose、Nginx、MariaDB を使用して高可用性 PHP アプリケーション クラスターを構築する
Docker Compose、Nginx、MariaDB を使用して高可用性 PHP アプリケーション クラスターを構築する
はじめに:
インターネットの普及に伴い、Web アプリケーション開発もそして展開はより複雑になります。 Web アプリケーションの可用性とスケーラビリティを向上させるために、多くの開発者はコンテナ化テクノロジーを使用して高可用性アプリケーション クラスターを構築し始めています。この記事では、Docker Compose、Nginx、MariaDB を使用して高可用性 PHP アプリケーション クラスターを構築する方法を紹介し、具体的なコード例を示します。
1. Docker と Docker Compose をインストールする
始める前に、Docker と Docker Compose をインストールする必要があります。 Docker はコンテナの作成と管理に使用できるコンテナ化テクノロジであり、Docker Compose はマルチコンテナ Docker アプリケーションを定義して実行するためのツールです。
まず、Docker をインストールする必要があります。 Docker 公式 Web サイトでオペレーティング システム用のインストール パッケージを見つけ、公式の手順に従ってインストールできます。
インストールが完了したら、ターミナルを開いて次のコマンドを実行して、Docker が正常にインストールされているかどうかを確認できます:
docker --version
次に、Docker Compose をインストールする必要があります。最新バージョンのバイナリを Docker Compose GitHub リポジトリからダウンロードし、システム ディレクトリに配置できます。
インストールが完了したら、次のコマンドを実行して、Docker Compose が正常にインストールされているかどうかを確認できます。
docker-compose --version
上記のコマンドが正常に実行された場合、Docker と Docker Compose は正常にインストールされています。
2. Docker Compose ファイルの作成
次に、PHP アプリケーション クラスターを定義するために、docker-compose.yml という名前のファイルを作成する必要があります。以下は基本的な例です:
version: '3' services: web: image: nginx:latest ports: - 80:80 volumes: - ./src:/var/www/html - ./nginx.conf:/etc/nginx/nginx.conf depends_on: - php php: image: php:7.4-fpm volumes: - ./src:/var/www/html db: image: mariadb:latest environment: - MYSQL_ROOT_PASSWORD=secret volumes: - ./data:/var/lib/mysql
上の例では、web、php、db の 3 つのサービスを定義しました。 Web サービスは、Nginx をリバース プロキシ サーバーとして使用し、php サービスで実行されている PHP アプリケーションにトラフィックを転送します。 php サービスは、PHP インタープリターとして PHP-FPM を使用し、アプリケーション コードをコンテナーの /var/www/html ディレクトリにマウントします。 db サービスは MariaDB をデータベース サーバーとして使用し、データ ストレージ ディレクトリをマウントします。
3. Nginx 設定ファイルの作成
Nginx サーバーを設定するには、nginx.conf という名前のファイルを作成する必要があります。以下は基本的な例です:
worker_processes auto; events { worker_connections 1024; } http { server { listen 80; server_name localhost; location / { proxy_pass http://php; proxy_set_header Host $host; } } }
上の例では、ポート 80 でリッスンし、トラフィックを php サービスにプロキシする単純な Nginx サーバーを定義しました。
4. PHP アプリケーションの作成
クラスターが適切に動作しているかどうかをテストするために、単純な PHP アプリケーションを作成する必要があります。以下は基本的な例です:
<?php $servername = "db"; $username = "root"; $password = "secret"; $dbname = "mydb"; $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } echo "Connected successfully to MariaDB server"; $conn->close(); ?>
上の例では、mydb という名前のデータベースを作成し、root ユーザーとシークレット パスワードを使用して MariaDB サーバーに接続しました。接続に成功すると「MariaDB サーバーに正常に接続されました」と出力されます。
5. アプリケーション クラスターの開始
ターミナルで docker-compose.yml ファイルがあるディレクトリに移動し、次のコマンドを実行してアプリケーション クラスターを開始します:
docker-compose up -d
このコマンドは、必要なイメージをダウンロードして開始し、コンテナーを作成して実行します。
6. アプリケーション クラスターのテスト
ブラウザーで http://localhost にアクセスすると、「MariaDB サーバーに正常に接続されました」という出力が表示されるはずです。これは、PHP アプリケーションが正常に動作していることを示しています。プログラムは MariaDB データベースに正常に接続しました。
7. アプリケーション クラスターの拡張と管理
docker-compose.yml ファイルを変更し、再度 docker-compose up -d コマンドを実行することで、アプリケーション クラスターを簡単に拡張および管理できます。 Web、php、db サービスのインスタンスの数を増減したり、必要に応じて構成を変更したりできます。
概要:
この記事では、Docker Compose、Nginx、MariaDB を使用して高可用性 PHP アプリケーション クラスターを構築する方法を紹介します。 Docker Compose を介して Nginx、PHP、MariaDB で構成されるマルチコンテナ アプリケーションを定義し、具体的なコード例を示しました。このクラスターを使用すると、アプリケーションを簡単に拡張および管理し、可用性と拡張性を向上させることができます。この記事が、可用性の高い PHP アプリケーション クラスターを構築する方法を理解するのに役立つことを願っています。
以上がDocker Compose、Nginx、MariaDB を使用して高可用性 PHP アプリケーション クラスターを構築するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Dockerコンテナを終了する4つの方法:コンテナ端子でCtrl Dを使用するコンテナターミナルに出口コマンドを入力しますDocker stop&lt; container_name&gt;コマンドを使用するDocker Kill&lt; container_name&gt;ホストターミナルのコマンド(フォース出口)

Dockerの外部ホストにファイルをコピーする方法:Docker CPコマンドを使用:Docker CP [Options]&lt; Container Path&gt; &lt;ホストパス&gt;。データボリュームの使用:ホストにディレクトリを作成し、-vパラメーターを使用してコンテナを作成するときにディレクトリをコンテナにマウントして、双方向ファイルの同期を実現します。

Docker画像を更新する手順は次のとおりです。最新の画像タグ新しい画像をプルする新しい画像は、特定のタグのために古い画像を削除します(オプション)コンテナを再起動します(必要に応じて)

すべてのコンテナ(Docker PS)をリストする手順に従って、Dockerコンテナ名を照会できます。コンテナリストをフィルタリングします(GREPコマンドを使用)。コンテナ名(「名前」列にあります)を取得します。

Dockerコンテナを再起動する方法:コンテナID(Docker PS)を取得します。コンテナを停止します(docker stop&lt; container_id&gt;);コンテナを起動します(docker start&lt; container_id&gt;);再起動が成功していることを確認します(Docker PS)。その他の方法:Docker Compose(Docker-Compose Restart)またはDocker API(Dockerドキュメントを参照)。

Dockerプロセス表示方法:1。DockerCLIコマンド:Docker PS; 2。SystemDCLIコマンド:SystemCTL Status Docker; 3。CLIコマンドを作成するDocker:Docker-Compose PS。 4。プロセスエクスプローラー(Windows); 5。 /procディレクトリ(Linux)。

DockerでMySQLを起動するプロセスは、次の手順で構成されています。MySQLイメージをプルしてコンテナを作成および起動し、ルートユーザーパスワードを設定し、ポート検証接続をマップしてデータベースを作成し、ユーザーはすべての権限をデータベースに付与します。

Dockerデスクトップの使用方法は? Dockerデスクトップは、ローカルマシンでDockerコンテナを実行するためのツールです。使用する手順には次のものがあります。1。Dockerデスクトップをインストールします。 2。Dockerデスクトップを開始します。 3。Docker Imageを作成します(DockerFileを使用); 4. Docker画像をビルド(Docker Buildを使用); 5。Dockerコンテナを実行します(Docker Runを使用)。
