Docker Compose、Nginx、MariaDB による PHP アプリケーションの安全な暗号化
今日のデジタル時代では、データ セキュリティは非常に重要な問題です。多くのアプリケーションでは、ユーザー データと機密情報の保護を無視できません。この記事では、Docker Compose、Nginx、MariaDB を使用して PHP アプリケーションの安全な暗号化を実装する方法を紹介します。同時に、読者の理解を助けるために、いくつかの具体的なコード例も提供します。
まず、Docker Compose の基本概念を理解する必要があります。 Docker Compose は、YAML ファイルを使用して複数の Docker コンテナーを定義および管理するのに役立つ Docker 用のツールです。 Docker Compose を使用すると、複数のコンテナを簡単に作成および管理して、完全なアプリケーションを構築できます。
この例では、Docker Compose を使用して、Nginx、PHP、MariaDB の 3 つのコンテナーを作成します。 Nginx は、HTTP リクエストを処理して適切なコンテナに転送できる強力な Web サーバーおよびリバース プロキシ サーバーです。 PHP コンテナは、PHP アプリケーションを実行するために使用されます。 MariaDB はデータベースの保存と管理に使用されます。
まず、Docker Compose YAML ファイルを作成する必要があります。この場合、これを docker-compose.yml
と呼びます。以下は簡単な例です:
version: '3' services: nginx: image: nginx:latest ports: - "80:80" volumes: - ./nginx/conf.d:/etc/nginx/conf.d depends_on: - php php: image: php:7.4-fpm volumes: - ./php/www:/var/www/html depends_on: - db db: image: mariadb:latest environment: - MYSQL_ROOT_PASSWORD=mysecretpassword volumes: - db_data:/var/lib/mysql volumes: db_data: {}
この例では、nginx、php、db の 3 つのサービスを定義します。 nginx
サービスは最新の Nginx イメージを使用し、コンテナーのポート 80 をホストのポート 80 にマッピングします。同時に、./nginx/conf.d
ディレクトリを /etc/nginx/conf.d
ディレクトリにマウントして、Nginx サーバーを簡単に構成できるようにします。 php
サービスは、PHP 7.4-fpm イメージを使用し、./php/www
ディレクトリを /var/www/html
ディレクトリにマウントします。最後に、db
サービスは最新の MariaDB イメージを使用し、root パスワードは MYSQL_ROOT_PASSWORD
環境変数を通じて設定されます。同時に、ボリューム db_data
を使用してデータベースを永続化します。
次に、PHP アプリケーションの Nginx 構成ファイルを作成する必要があります。 myapp.conf
という名前のファイルを ./nginx/conf.d
ディレクトリに作成し、次の内容を追加します。
server { listen 80; server_name myapp.com; root /var/www/html; index index.php index.html; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ .php$ { try_files $uri =404; fastcgi_split_path_info ^(.+.php)(/.+)$; fastcgi_pass php:9000; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
この構成ファイルでは、仮想ホストを作成します。 myapp.com
という名前は、ポート 80 を PHP アプリケーションに関連付けるように定義されています。同時に、/var/www/html
ディレクトリをルート ディレクトリとして設定し、index.php
ファイルをデフォルトのインデックス ファイルとして設定します。 location /
セクションでは、要求されたファイルが存在しない場合に、要求が index.php
ファイルに転送されることを定義します。 location ~ .php$
の部分は、.php ファイルのリクエストを処理し、PHP コンテナのポート 9000 に転送するために使用されます。
最後に、PHP アプリケーションの index.php
ファイルを作成し、./php/www
ディレクトリに保存する必要があります。
<?php echo "Hello, World!"; ?>
この例は非常に単純で、「Hello, World!」を出力するだけです。ニーズに応じて、より複雑な PHP アプリケーションを作成できます。
これで、次のコマンドを実行してアプリケーションを起動できます:
docker-compose up -d
起動が完了したら、ブラウザを開いて http://localhost にアクセスしてアプリケーションを起動できます。
をクリックしてアプリケーションを表示します。 「Hello, World!」が画面に表示されるはずです。
Docker Compose、Nginx、MariaDB を使用して、安全で暗号化された PHP アプリケーションを作成することに成功しました。 Nginx はリバース プロキシ サーバーとして機能し、HTTP リクエストを処理して適切なコンテナに転送できます。 PHP コンテナはアプリケーションの実行環境であり、Nginx コンテナと通信できます。 MariaDB はデータベースの保存と管理に使用されます。
実際のアプリケーションでは、SSL 証明書を使用してデータのセキュリティをさらに保護できます。 Nginx コンテナーで SSL 証明書を構成して、すべての HTTP リクエストが確実に暗号化されるようにすることができます。同時に、アクセス制御や暗号化ストレージなどの MariaDB のセキュリティ メカニズムを使用して、データベース内のデータを保護することもできます。
要約すると、Docker Compose、Nginx、MariaDB を通じて、安全で暗号化された PHP アプリケーションを簡単に作成および管理できます。これらのツールとテクノロジーを使用することで、ユーザー データと機密情報のセキュリティをより適切に保護できます。この記事が読者に役立ち、アプリケーションの実用的な参考になれば幸いです。
以上がDocker Compose、Nginx、MariaDB を使用した PHP アプリケーションの安全な暗号化の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。