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

推薦する

リクエストを転送したり、静的リソースファイルにアクセスしたりする複数の場所への nginx の実装

この記事では主に、リクエストを転送したり、静的リソース ファイルにアクセスしたりする nginx の...

Docker を使用してフロントエンド アプリケーションをデプロイする方法

Dockerはますます普及しています。環境を軽量かつ柔軟に分離し、容量を拡張し、運用保守管理を容易に...

CentOS7.4 に MySQL 5.7.26 をインストールするための詳細なチュートリアル

CentOS にはデフォルトで MariaDB がインストールされていますが、これは MySQL の...

Vue の詳細な入門ノート

目次1. はじめに2. 初期ビュー(I) Vueの概念を理解する(II) MVVMアーキテクチャ(I...

Nginx 転送ソケットポート設定の詳細な説明

Nginx によるソケット ポート転送の一般的なシナリオ: オンライン学習アプリケーションでは、通常...

MySQL 8.0 WITH クエリの詳細

目次MySQL 8 の WITH クエリについて学ぶ1. 例3. 練習するMySQL 8 の WIT...

光るテキストとちょっとしたJS特殊効果を実現するCSS

実装のアイデア: CSSでtext-shadowを使用してテキストの光る効果を実現します効果画像: ...

jQueryはアコーディオンの小さなケースを実装します

この記事では、アコーディオンを実装するためのjQueryの具体的なコードを参考までに紹介します。具体...

VueはOSSを使用して画像や添付ファイルをアップロードします

OSS を使用して Vue プロジェクトに画像や添付ファイルをアップロードするここでは、写真のアップ...

js と jQuery での Ajax の使用例の詳細

目次ネイティブJS GETリクエストの送信方法投稿リクエストの送信方法パラメータ付きのGETリクエス...

Linux環境にJDK1.8をインストールする

目次1. インストール環境2. インストール手順ステップ1: インストールパッケージをダウンロードす...

MySQL ストアド プロシージャのエラー処理例の詳細な説明

この記事では、例を使用して MySQL ストアド プロシージャのエラー処理について説明します。ご参考...

Alibaba Cloud ECS クラウド サーバー (Linux システム) は、MySQL をインストールした後にリモートで接続できません (落とし穴)

昨日、1年間使用していた Alibaba Cloud サーバーを購入しました。システムは Linux...

Mysqlはフィールドスプライシングのための3つの関数を実装している

データをオペレーションにエクスポートする場合、フィールドの結合は避けられません。MySQL でこれが...

変数が空かどうかを判定するシェルの方法の概要

シェルで変数が空かどうかを判断する方法シェルプログラミングでは、パラメータのエラーチェック項目に、変...