Docker✕LAMP環境を整えたい(PHP・MYSQL・Apache)

投稿者:

このテキストは、LAMP環境の教科書になります。
解説の内容と動作が異なる場合はは、必ずリファレンスを確認してください。

※すでにDockerがインストールされていることを前提の手順です。

LAMP環境構築設定

プロジェクトフォルダを作成します。

mkdir sample_lamp

作成したフォルダに移動して設定ファイルとフォルダを作成します。

cd sample_lamp
mkdir php && touch php/Dockerfile
mkdir mysql
mkdir html
touch docker-compose.yml
touch php.ini

docker-compose.ymlを記述していきます。

version: "3"

services:
  mysql:
    image: mysql:5.7
    volumes:
      - ./mysql:/var/lib/mysql
    ports:
      - 3306:3306
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_DATABASE=test
      - MYSQL_USER=test
      - MYSQL_PASSWORD=test
  php:
    build: ./php
    volumes:
      - ./php.ini:/usr/local/etc/php/php.ini
      - ./html:/var/www/html
    ports:
      - 8080:80
    depends_on:
      - mysql
  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    environment:
      - PMA_ARBITRARY=1
      - PMA_HOST=mysql
    links:
      - mysql
    ports:
      - 8000:80
    volumes:
      - /sessions

phpサーバー用のDockerfileを記述していきます。
php:7.4-apacheにはMySQLのドライバが入っていないので、同時にインストールしています。

FROM php:7.4-apache
RUN apt-get update && apt-get install -y libonig-dev && \
  docker-php-ext-install pdo_mysql mysqli mbstring

LAMP環境の起動

docker-compose.ymlファイルがあるところ(sample_lamp内)で以下コマンドを実行します。

 docker-compose up -d

コンテナが起動したかを確認します。

docker ps

動作テスト

先程作成したhtmlフォルダにhtmlファイルを作成することで、ブラウザで表示することができます。

htmlフォルダでindex.htmlを作成します。

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1>初期画面だよ!</h1>
</body>
</html>

できたら、http://localhost:8080にアクセスすると「初期画面だよ!」が表示されます。

LAMP環境の停止

最後に停止についてです。
起動したコンテナを停止するには以下のコマンドを使用します。

docker-compose stop

最後に

作業は以上となります。
お疲れ様でした。
それでは違う記事もご参考になれば幸いです。
ありがとうございました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です