ホームページ  >  記事  >  バックエンド開発  >  Docker Compose、Nginx、MariaDB を使用した PHP アプリケーションのセキュリティ強化

Docker Compose、Nginx、MariaDB を使用した PHP アプリケーションのセキュリティ強化

WBOY
WBOYオリジナル
2023-10-12 09:02:111253ブラウズ

使用Docker Compose、Nginx和MariaDB实现PHP应用程序的安全加固

Docker Compose、Nginx、MariaDB を使用して PHP アプリケーションのセキュリティ強化を実装する

ネットワーク攻撃やデータ漏洩が頻繁に発生する中、アプリケーションとデータベースのセキュリティを保護ますます重要になります。 PHP アプリケーションでは、Docker Compose、Nginx、MariaDB を使用してセキュリティを強化し、特定のセキュリティ保護手段を提供できます。この記事では、セキュリティを強化するためにこれらのツールを使用する方法を説明し、いくつかのコード例を示します。

  1. Docker Compose の使用

Docker Compose は、複数コンテナーの Docker アプリケーションを定義および実行するためのツールです。 Docker Compose を使用すると、PHP アプリケーションの実行環境、Web サイト、データベースを簡単に管理できます。

まず、docker-compose.yml という名前のファイルを作成し、その中に次のコードをコピーします。

version: '3'

services:
  web:
    build: ./web
    ports:
      - 8000:80
    volumes:
      - ./web:/var/www/html
    depends_on:
      - db

  db:
    image: mariadb
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_DATABASE=mydb
    volumes:
      - ./db:/var/lib/mysql

上記のコードは 2 つのサービスを定義します。webdbweb サービスは PHP アプリケーションの実行に使用され、db サービスは MariaDB データベースの実行に使用されます。 build 命令は、web サービスがイメージをビルドするときに使用される Dockerfile を指定します。ports 命令は、コンテナーのポート 80 をホストのポート 8000 にマップします。 volume 命令は、永続ストレージとリアルタイム デバッグのために、ローカルの ./web ディレクトリをコンテナの /var/www/html ディレクトリにマウントします。 depends_on ディレクティブは、web サービスが db サービスに依存することを指定します。

docker-compose.yml が存在するディレクトリに web という名前のフォルダーを作成し、 フォルダー内に Dockerfile という名前のフォルダーを作成します。ファイルを開き、次のコードをコピーします。

FROM php:7.4-apache

RUN apt-get update 
    && apt-get install -y libpq-dev 
    && docker-php-ext-install pdo pdo_mysql mysqli

上記のコードは、公式に提供されている PHP 7.4 Apache イメージをベース イメージとして使用し、MariaDB と PostgreSQL の拡張機能をインストールします。

    Nginx の使用
Nginx は、一般的な Web 攻撃から PHP アプリケーションを保護するために使用できる高性能 HTTP およびリバース プロキシ サーバーです。 Nginxを使用してセキュリティ対策を設定していきます。

web サービスが存在するディレクトリに nginx という名前のフォルダを作成し、## フォルダ内に default.conf# という名前のフォルダを作成します。ファイルを作成し、次のコードをコピーします。 <pre class='brush:nginx;toolbar:false;'>server { listen 80; root /var/www/html; index index.php index.html index.htm; server_name localhost; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ .php$ { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; } location ~ /.ht { deny all; } }</pre>上記のコードは、Nginx 仮想ホストを定義し、Web サイトの基本構成を設定します。

root

ディレクティブは Web サイト ファイルのルート ディレクトリを指定し、index ディレクティブはデフォルトのインデックス ファイルを指定します。 location ディレクティブは URL リクエストの処理に使用され、try_files ディレクティブはファイルの照合を試み、ファイルが存在しない場合はリクエストを index.php にリダイレクトします。 ### ファイル。 fastcgi ディレクティブは、PHP ファイルを処理し、リクエストを PHP-FPM プロセスに渡すために使用されます。 MariaDB の使用

  1. MariaDB は、アプリケーション データの保存と管理に使用できるオープン ソースのリレーショナル データベース管理システムです。 MariaDB を使用して PHP アプリケーションのデータを保存し、いくつかのセキュリティ対策を設定します。

docker-compose.yml

が存在するディレクトリに

db という名前のフォルダーを作成し、.cnf# フォルダーに my という名前のフォルダーを作成します。 ## ファイルを作成し、次のコードをコピーします。 <pre class='brush:ini;toolbar:false;'>[mysqld] bind-address = 0.0.0.0</pre>上記のコードは、MariaDB にバインドされた IP アドレスを 0.0.0.0 として指定し、任意の IP アドレス接続からのデータを許可します。これにより、データベースへのアクセスが容易になります。

コンテナの実行

    ターミナルで
  1. docker-compose.yml
  2. があるディレクトリに移動し、次のコマンドを実行してコンテナを開始します。コンテナ:
docker-compose up -d

このコマンドは、web および

db

サービスのコンテナを構築して開始します。 -d パラメーターは、コンテナーをバックグラウンドで実行するために使用されます。 これまでのところ、私たちは Docker Compose、Nginx、MariaDB を使用して PHP アプリケーションのセキュリティ強化を実装することに成功しています。コンテナ化されたプログラミング環境を使用することで、アプリケーションとデータベースを簡単に管理および保護し、一定レベルのセキュリティを提供できます。

以上がDocker Compose、Nginx、MariaDB を使用した PHP アプリケーションのセキュリティ強化の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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