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 学習データベースバックアップの詳細な説明

目次1.DB、DBMS、SQL 2. データベースの特徴3. SQL分類4. MySQLを起動および...

Linux におけるドライバモジュールのパラメータ転送プロセスの分析

ドライバーモジュールに渡すパラメータ名、タイプ、権限を宣言します。 module_param(変数名...

Vue における Vue.use() の原理と基本的な使用法

目次序文1. 例で理解する2. ソースコードを分析する3. まとめ要約する序文他の人のコンポーネント...

Docker に Solr 8.6.2 をインストールし、中国語の単語セグメンターを構成する方法

1. 環境バージョンDocker バージョン 19.03.12セントロス7ソル8.6.2 2. Do...

MycliはMySQLコマンドライン愛好家にとって必須のツールです

マイクリMyCLI は、自動補完と構文の強調表示を備えた MySQL、MariaDB、および Per...

Linux コマンドラインのクイックヒント: ファイルの検索方法

私たちのコンピューターには、ディレクトリ、写真、ソース コードなどのファイルが保存されています。たく...

Vue フロントエンド開発における階層的にネストされたコンポーネント間の通信の詳細な説明

目次序文例まとめ序文Vue の親子コンポーネントは、props を通じて親コンポーネントの値を子コン...

MySQLに画像を保存する方法

1 はじめにデータベースを設計する場合、画像や音声ファイルをデータベースに挿入することは避けられませ...

Linux における「/」と「~」の違いの詳細な説明

「/」はルートディレクトリ、「~」はホームディレクトリです。 Linux ストレージはツリー状にマウ...

Linux の daily_routine サンプルコードの詳細な説明

まずサンプルコードを見てみましょう: #/bin/bash cal 日付 -u echo "...

HTML でよく使われるメタ百科事典 (推奨)

メタタグは、HTML言語のヘッド領域にある補助タグです。HTML文書のヘッダーにあるヘッドタグとタイ...

MySQLのロック機構の詳細な説明

序文データの一貫性と整合性を確保するために、あらゆるデータベースにはロック メカニズムが備わっていま...

Windows での Apache+Tomcat7 負荷分散構成方法の詳細な説明

準備Windows Server 2008 R2 Enterprise (2.40GH、8GB、64...

Vue実戦記録のログインページの実装

目次1. 事前準備1.1 Node.jsをインストールする1.2 webpackをインストールする1...

Ubuntu 18.0.4 は mysql をインストールし、エラー 1698 (28000): ユーザー ''root''@''localhost'' のアクセスが拒否されましたを解決します

序文最近 Linux を学び、その後 Win から Ubuntu に変更しました。以前インストールし...