dockerを使用して、LAMP環境を整えていきます。dockerのインストールについてはこちらから→ mac、Windows
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バージョンが表示されたら成功です。
お疲れ様でした。
コメント