ホームページ  >  記事  >  バックエンド開発  >  Docker Compose、Nginx、MariaDB を使用した PHP アプリケーションの安全な暗号化

Docker Compose、Nginx、MariaDB を使用した PHP アプリケーションの安全な暗号化

WBOY
WBOYオリジナル
2023-10-12 14:21:11967ブラウズ

通过Docker Compose、Nginx和MariaDB实现PHP应用程序的安全加密

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。