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 で日付を保存するためのベスト プラクティス ガイド

推薦する

Jenkins の紹介と Docker で Jenkins をデプロイする方法

1. 関連概念1.1 Jenkins の概念: Jenkins は、使用されるプラットフォームに関係...

Dockerリンクはコンテナの相互接続を実現します

目次1.1. IP経由のコンテナ間のネットワークアクセス1.2. コンテナ名またはコンテナIDによる...

WeChatアプレットを使用して天井効果を実現する方法の例

目次1. 実装2. 問題点3. より良い実装方法があるかどうか検討する要約する背景は日付のタイトルで...

VMware のインストールと使用時の問題と解決策

仮想マシンは使用中であるか、接続できません次のようなエラーが報告された場合解決まずこのページにアクセ...

JSはシンプルなカウンターを実装します

HTML CSS および JavaScript を使用して、プラス、マイナス、ゼロの 3 つのボタン...

JS のあらゆる場所で絶対等価演算子の使用をやめる

目次概要1. NULL値のテスト2. ユーザー入力を読み取る導入事実の根源はどこにあるのでしょうか?...

Mysql 8.0.17 winx64バージョンのインストール中に発生した問題を解決する

1. my.iniファイルを手動で作成して追加する # クライアントセクション # --------...

Nginx で HTTPS 証明書を構成する詳細なプロセス

1. HttpとHttpsの違いHTTP: インターネットで最も広く使用されているネットワーク プロ...

CSS で 2 列レイアウトを実現する N 通りの方法

1. 2 列レイアウトとは何ですか? 2 列レイアウトには、左側が固定幅で右側が適応幅のレイアウトと...

SQLは、隣接する2行のデータに対して加算、減算、乗算、除算の演算を実行します。

SQL は、データを特定の順序で並べ替え、特定のフィールドでグループ化した後、隣接する 2 つのデ...

組み込み移植 docker エラー問題 (概要)

長い移植と情報検索の期間を経て、組み込みDockerの問題を解決することができました。インターネット...

Linux NFSメカニズムの動作原理と例の分析

NFS とは何ですか?ネットワークファイルシステムネットワーク上でファイルを保存および整理するための...

JavaScriptのループの違いについての詳細な説明

目次序文列挙可能なプロパティ反復可能なオブジェクトforEachメソッドとmapメソッドチェーン呼び...

仮想マシンを作成し、VMware に Redhat Linux オペレーティング システムをインストールする (グラフィック チュートリアル)

VMware で仮想マシンを作成し、Redhat Linux オペレーティング システムをインスト...

配列をフィルタリングするJavaScript

この記事では、配列フィルタリングを実装するためのJavaScriptの具体的なコードを参考までに紹介...