CentOS7環境でDockerを使ってPHP動作環境を構築する手順を詳しく解説

CentOS7環境でDockerを使ってPHP動作環境を構築する手順を詳しく解説

関連記事:

CentOS7でyumを使用してDockerをインストールする

Dockerを使ってWin10環境でPHP動作環境を構築する

1. プライベートネットワークを作成する

docker ネットワーク作成 lnmp

プライベート ネットワークが正常に作成されました。

2. Nginxをインストールする

ミラーアドレス: https://hub.docker.com/_/nginx?tab=tags

最新バージョンの Nginx をインストールできます。ここで、タグを検索して Nginx1.18.0 イメージをプルできます。

docker pull nginx:1.18.0

docker images コマンドを使用して、Nginx イメージが正常にインストールされていることを確認します。

Nginx を実行します。

#コンテナを実行します docker run --name nginx -p 8080:80 -v /root/docker/nginx/html:/usr/share/nginx/html -d nginx:1.18.0
 
#設定ディレクトリに移動します cd /root/docker/nginx
 
#設定ファイルをコピーします docker cp nginx:/etc/nginx/conf.d conf.d
 
#コンテナを停止する docker stop nginx
 
#コンテナを削除する docker rm nginx 
 
# もう一度実行 docker run --name nginx -p 8080:80 --network lnmp -v /root/docker/nginx/html:/usr/share/nginx/html -v /root/docker/nginx/conf.d:/etc/nginx/conf.d/ -d nginx:1.18.0

テスト: Nginx サイトのルート ディレクトリの html ディレクトリに index.html ファイルを作成し、次のテキストを記述します。

echo "Nginx サーバー" >> /root/docker/nginx/html/index.html

ブラウザは次のようにホスト アドレス 127.0.0.1:8080 にアクセスし、Nginx が正常にインストールされます。

3. MySQLをインストールする

ミラー アドレス: https://hub.docker.com/_/mysql?tab=tags 、ここから MySQL5.7.34 イメージをプルします:

docker pull mysql:5.7.35

MySQLを実行します:

docker run --name mysql5.7 --network lnmp -v /root/docker/mysql/:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d --privileged=true mysql:5.7.35

4. PHPをインストールする

ミラー アドレス: https://hub.docker.com/_/php?tab=tags、PHP7.4 イメージをここからプルします:

docker pull php:7.4-fpm

PHP を実行します:

#イメージを実行します docker run --name php7.4 --network lnmp -d php:7.4-fpm
 
#ディレクトリを作成 mkdir -p /root/docker/php
 
#ディレクトリを移動 cd /root/docker/php/
 
#www.conf をコピー
docker cp php7.4:/usr/local/etc/php-fpm.d/www.conf www.conf
 
#コンテナに入る docker exec -it php7.4 bash
 
#ディレクトリを移動 cd /usr/src/
 
#ファイルを解凍します xz -d php.tar.xz
 
#ファイルを解凍する tar -xvf php.tar
 
#画像を終了する exit
 
#php.iniをコピー
docker cp php7.4:/usr/src/php-7.4.22/php.ini-production php.ini
 
#イメージを停止する docker stop php7.4
 
#イメージを削除する docker rm php7.4
 
# イメージを再度実行します docker run --name php7.4 --network lnmp -v /root/docker/nginx/html:/var/www/html -v /root/docker/php/www.conf:/usr/local/etc/php-fpm.d/www.conf -v /root/docker/php/php.ini:/usr/local/etc/php/php.ini -d php:7.4-fpm

Nginx 設定ファイルを vim /root/docker/nginx/conf.d で編集します。

サーバー{
    聞く 80;
    server_name ローカルホスト;
    
    #文字セット koi8-r;
    #access_log /var/log/nginx/log/host.access.log メイン;
 
    位置 / {
        ルート /usr/share/nginx/html;
        インデックス index.php index.html index.htm;
        try_files $uri $uri/ =404;
    }
 
    エラーページ 404 /404.html;
    場所 = /40x.html {
        ルート /user/share/nginx/html;
    }
 
    # サーバーのエラーページを静的ページ /50x.html にリダイレクトします
    #
    エラーページ 500 502 503 504 /50x.html;
    場所 = /50x.html {
        ルート /usr/share/nginx/html;
    }
 
    # PHP スクリプトを 127.0.0.1:9000 で待機している FastCGI サーバーに渡します
    #
    場所 ~ \.php$ {
        ルート /var/www/html/;
        fastcgi_pass php7.4:9000;
        fastcgi_index インデックス.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
        fastcgi_params を含めます。
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 
    }
}

index.php ファイルを作成します: vim /root/docker/nginx/html/index.php

<?php
    phpinfo();

Nginx イメージを再起動します: (プロセス ID は docker ps コマンドで確認できます)

docker を再起動 43aea5a90446

このとき、ブラウザは次のようにホスト アドレス 127.0.0.1:8080 にアクセスし、PHP が正常にインストールされます。

CentOS7環境でDockerを使ってPHP動作環境を構築する記事はこれで終了です。Dockerを使ってPHP動作環境を構築する方法については、123WORDPRESS.COMの過去記事を検索するか、以下の関連記事を引き続き閲覧してください。今後とも123WORDPRESS.COMをよろしくお願いいたします。

以下もご興味があるかもしれません:
  • docker を使用して php7 と nginx の動作環境を構築するプロセス全体 (公式イメージ)
  • Centos7+Docker+Jenkins+ASP.NET Core 2.0 の自動リリースとデプロイメントの実装
  • Centos7はdockerを使ってgitlabサーバーを構築する
  • Centos7 (Kubernetes) で Docker プライベート ウェアハウスを構築する方法
  • CentOS7 Nvidia Docker環境構築

<<:  イラスト風ウェブサイトホームページデザイン ウェブサイトデザインの新トレンド

>>:  MySQL で日付を保存するためのベスト プラクティス ガイド

推薦する

実用的な MySQL + PostgreSQL バッチ挿入更新 insertOrUpdate

目次1. 百度百科事典1. MySQL 2. PostgreSQL 3. MySQL に対する Po...

Nginx の負荷分散方法の概要

負荷分散を理解するには、まずフォワード プロキシとリバース プロキシを理解する必要があります。注記:...

Vue が Ref を使用してレベル間でコンポーネントを取得する手順

VueはRefを使用してレベル間でコンポーネントインスタンスを取得します例の紹介開発プロセスでは、レ...

MySQLの行数カウントに関する簡単な説明

各テーブルの行数をカウントするために使用される MySQL count() 関数は、誰もがよく知って...

ハイパーリンクの表示と開き方

<br />関連記事: ハイパーリンクを表示して開く方法症状<br />ユー...

雨滴効果を実現する JavaScript キャンバス

この記事の例では、雨滴効果を実現するためのキャンバスの具体的なコードを参考までに共有しています。具体...

MySQLのスロークエリの詳細な説明

MySQL操作情報のクエリ show status -- すべての MySQL 操作情報を表示します...

JS 配列の重複を排除する 9 つの高度な方法 (実証済みで効果的)

序文一般的な方法はここには記載されていませんが、等しいかどうかを判断するための二重ループや、比較のた...

MySQL シリーズ 12 バックアップとリカバリ

目次チュートリアルシリーズ1. バックアップ戦略の説明1. バックアップの種類2. バックアップで考...

CentOS 8 インストール図 (超詳細なチュートリアル)

CentOS 8 が正式にリリースされました! CentOS は Red Hat の再配布ポリシー...

JavaScript 文字列の一般的なメソッドの詳細な説明

目次1. キャラクター文法パラメータ索引戻り値2. 連結文法パラメータ文字列2 [, …文字列N]戻...

nginx は画像表示の遅さとダウンロードの不完全さの問題を解決します

前面に書かれた最近、ある読者から、ブラウザからサーバーにアクセスすると、画像の表示が遅く、ブラウザに...

カルーセル効果を実現するための純粋なjs

この記事では、カルーセルマップの効果を実現するためのjsの具体的なコードを参考までに共有します。具体...

Vueはアコーディオン効果を実装する

この記事の例では、アコーディオン効果を実現するためのVueの具体的なコードを参考までに共有しています...