Docker Compose、Nginx、MariaDB を使用して PHP アプリケーションのセキュリティ強化を実装する
ネットワーク攻撃やデータ漏洩が頻繁に発生する中、アプリケーションとデータベースのセキュリティを保護ますます重要になります。 PHP アプリケーションでは、Docker Compose、Nginx、MariaDB を使用してセキュリティを強化し、特定のセキュリティ保護手段を提供できます。この記事では、セキュリティを強化するためにこれらのツールを使用する方法を説明し、いくつかのコード例を示します。
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 つのサービスを定義します。web
と db
。 web
サービスは 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
web サービスが存在するディレクトリに
nginx という名前のフォルダを作成し、## フォルダ内に
default.conf# という名前のフォルダを作成します。ファイルを作成し、次のコードをコピーします。 <div class="code" style="position:relative; padding:0px; margin:0px;"><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><div class="contentsignin">ログイン後にコピー</div></div>
上記のコードは、Nginx 仮想ホストを定義し、Web サイトの基本構成を設定します。
ディレクティブは Web サイト ファイルのルート ディレクトリを指定し、index
ディレクティブはデフォルトのインデックス ファイルを指定します。 location
ディレクティブは URL リクエストの処理に使用され、try_files
ディレクティブはファイルの照合を試み、ファイルが存在しない場合はリクエストを index.php にリダイレクトします。 ### ファイル。
fastcgi ディレクティブは、PHP ファイルを処理し、リクエストを PHP-FPM プロセスに渡すために使用されます。
MariaDB の使用
docker-compose.yml
が存在するディレクトリにdb という名前のフォルダーを作成し、.cnf# フォルダーに
my という名前のフォルダーを作成します。 ## ファイルを作成し、次のコードをコピーします。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:ini;toolbar:false;'>[mysqld]
bind-address = 0.0.0.0</pre><div class="contentsignin">ログイン後にコピー</div></div>
上記のコードは、MariaDB にバインドされた IP アドレスを 0.0.0.0
として指定し、任意の IP アドレス接続からのデータを許可します。これにより、データベースへのアクセスが容易になります。
コンテナの実行
docker-compose up -d
このコマンドは、web
および
サービスのコンテナを構築して開始します。 -d
パラメーターは、コンテナーをバックグラウンドで実行するために使用されます。 これまでのところ、私たちは Docker Compose、Nginx、MariaDB を使用して PHP アプリケーションのセキュリティ強化を実装することに成功しています。コンテナ化されたプログラミング環境を使用することで、アプリケーションとデータベースを簡単に管理および保護し、一定レベルのセキュリティを提供できます。
以上がDocker Compose、Nginx、MariaDB を使用した PHP アプリケーションのセキュリティ強化の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。