dockerでさくっと環境を整える

dockerを使用して、LAMP環境を整えていきます。dockerのインストールについてはこちらから→ macWindows

LAMPとは、オープンソースソフトウェアの組み合わせを指す言葉です。具体ていにはOSのLinux、WebサーバーのApache、データベースのMySQL、プログラミング言語のPerl、PHP、Pythonを指します。

LAMPとは、これらの頭文字をとったものです。いずれも、データベース連動型で動的なコンテンツを含むWenサイトの構築に適しており、かつ人気の高いものです。OSたるLinuxのディストリビューションにおいては、これらLAMPがセットとなって配布されているものもあります。

https://www.idcf.jp/words/lamp.html

PHPを使用して開発しようとするときに、XAMPPやMAMPという言葉を耳にする機会もあるかと思います。それらを使用して、簡単に自分のパソコンの中にサーバ(仮想環境)を立てることができます。

今回は、その仮想環境をdockerで構築していきます。

とりあえず、やってみる(準備)

以下のように準備してください。docker(フォルダ名)は、任意で構いません。自分が管理しやすいところに作成してください。

今回構築する環境は、パソコンをシャットダウンしても自動で起動されるようにします。

※Dockerfileはファイルになります。フォルダではないのでご注意ください。

docker
 |_ docker-compose.yml
 |_ htdocs
 |_ php
     |_ Dockerfile
     |_ httpd.conf
     |_ php.ini
     |_ phpmyadmin-misc.ini

以下、docker-compose.yml

m1 mac 以外のかたは、platformは削除してください。

version: '3'

services:

  mysql:
    platform: linux/x86_64 # M1チップ対応のため追記
    # build: ./mysql/
    image: mariadb
    # image: mysql:5.7
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    # hostname: localhost
    # command: mysqld --skip-grant-tables --skip-networking 
    environment:
        - MYSQL_ROOT_PASSWORD=root
    ports:
      - "3306:3306"

  phpmyadmin:
    platform: linux/x86_64 # M1チップ対応のため追記
    depends_on:
      - mysql
    image: phpmyadmin/phpmyadmin
    environment:
      PMA_HOST: 'mysql'
    restart: always
    ports:
      - "8080:80"
    volumes:
      - ./php/phpmyadmin-misc.ini:/usr/local/etc/php/conf.d/phpmyadmin-misc.ini

  php-apache:
    build: ./php
    volumes:
      - ./htdocs:/var/www/html
      - ./php/httpd.conf:/etc/httpd/conf/httpd.conf
      - ./php/php.ini:/usr/local/etc/php/php.ini
    restart: always
    ports:
      - "80:80"
    depends_on:
      - mysql
    environment:
     - VIRTUAL_HOST=bfasystem.localhost

volumes:
    db_data: {}


以下、Dockerfile

FROM php:7.4-apache
# COPY ./php.ini /usr/local/etc/php/
# Composerのインストール
# RUN cd /usr/bin && curl -s http://getcomposer.org/installer | php && ln -s /usr/bin/composer.phar /usr/bin/composer

RUN apt-get update \
  && apt-get install -y libfreetype6-dev libjpeg62-turbo-dev libpng-dev libicu-dev libonig-dev\
  && docker-php-ext-install pdo_mysql mysqli gd iconv intl \
  && mv /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled \
  && /bin/sh -c a2enmod rewrite


以下、httpd.conf

<VirtualHost *:80>
    DocumentRoot /var/www/html/
    ServerName localhost
</VirtualHost>


以下、php.ini

display_errors = On
extension=intl
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
session.cookie_lifetime = 3600
max_execution_time = 300
memory_limit = 128M
error_reporting = E_ALL
date.timezone = "Asia/Tokyo"

;メモリ使用量の上限
memory_limit = 512M

;POSTデータの最大サイズ ※合計サイズ
post_max_size = 500M


以下、phpmyadmin-misc.ini

allow_url_fopen = Off
max_execution_time = 300
max_input_vars=10000
memory_limit = 64M
post_max_size = 64M
upload_max_filesize = 64M


とりあえずやってみる(サーバ起動)

ファイルの準備ができたら、ターミナル(コンソール)または、Windows PowerShellを起動してください。

cdコマンドで、dockerディレクトリまで移動してください。

lsコマンドで、以下のように表示されたらOKです。

docker-compose.ymlを確認できたら、以下のコマンドを実行してください。初回は時間がかかるため、気長に待ちましょう。

 docker-compose up -d --build

以下のように「started」になったらOKです。

ローカルサーバの確認

htdocsの中に、index.phpを作成して、以下の内容を記述してください。

<?php 
  phpinfo(); 
?>

保存したらブラウザで、http://localhostを確認してください。

phpバージョンが表示されたら成功です。

お疲れ様でした。

コメント

タイトルとURLをコピーしました