DockerでApacheとPHPとMySQLのLAMP環境を構築する

DockerにPHPとMYSQLを用意して、Apacheからアクセスします。

スポンサーリンク

概要

Dockerには、PHPやMySQLやApacheなどの環境が元から用意されています。なので、これらを正しく使えば、とても簡単に環境を構築できます。

今回は、これらを使ってLAMP環境を作ってみます。

環境

Dockerのイメージは、Docker Hubにあるものを使用します。

それらの情報を下記に書いておきます。

  • PHP……php:5.6-apache
  • MySQL……mysql:5.7

MySQLの用意

最初に、データベースであるMySQLの準備をします。

イメージは、下記のリンクのバージョン5.7を使用します。

https://hub.docker.com/_/mysql/

下記のコマンドを実行してMySQLのイメージをダウンロードします。

コンテナの作成は、下記のようにします。

–nameは、今回mysqlとしました。この名前は後々使うので覚えておきます。

MYSQL_ROOT_PASSWORDには、データベースのパスワードを設定します。

データベースにアクセスする場合は、ユーザー名: root、パスワード: 指定したパスワード、のようにしてアクセスします。

このようにコンテナを作成した時、データベースの文字コードはutf-8ではないので、文字コードをutf-8にしたい場合は、下記の内容が書かれたファイルを作成します。

このファイルの名前をmy.cnfとして、/my/conf.d/my.cnfに置いておきます。

そうしたら、dockerの-vオプションを使ってこのようにコンテナを起動します。

-vオプションを使って、設定ファイルをコンテナから見ることができるようにします。

PHPとApacheの用意

次に、PHPとApacheの準備をします。

イメージは、下記のリンクにあるものを使用します。

https://hub.docker.com/_/php/

今回使用するphp:5.6-apacheは、PHPの環境の他にWebサーバのApacheも入っているので、簡単にPHPのサイトを動かすことができます。

下記のコマンドを実行して、イメージをダウンロードします。

そして、–link、-v、-pオプションなどを利用して、下記のようにして、環境の出来上がりです。

-vオプションの、/my/wwwは、今回の環境で実行したいファイルなどがある場所を指定します。

しかし、ダウンロードしたイメージには、PHPのMySQLなどに接続するための拡張モジュールがインストールされていません。なので、拡張モジュールである、MySQL、MySQLi、PDO_MySQL と、文字化け防止のためにmbstringをインストール するためのコマンドを実行します。

下記のコマンドでシェルに接続します。

そして、パッケージのアップデートをしてから、インストールをします。

その後、再起動をすれば、環境の完成です。

あとは、ipアドレスを指定してアクセスすれば動作の確認ができます。

まとめ

dockerのオプションをいくつか使用したので、なかなか理解するのが難しいと思います。

何度か、やってみて覚えましょう。

スポンサーリンク

シェアする

フォローする