PHP7.4のLaravel開発環境を、Docker-Composeで構築して、Laravelの新規プロジェクトを作成して起動してみるところまで確認してみます。
- WEBサーバー:Apache
- DB:MariaDB
で作っていきたいと思います。
環境
この記事を書くにあたって使用した環境です。どれも、2020年7月時点の最新バージョンを使用しているハズ。
Docker
Name | Version |
---|---|
docker | 19.03.1 |
docker-compose | 1.24.1 |
Web
今回は、Webサーバーに「Apache」を使用します。
Name | Version |
---|---|
PHP | 7.4 |
Apache | 2.4.38 |
Laravel | 7.21.0 |
DB
データベースは「MariaDB」です。データベース管理ツールの「Adminer」も入れておきます。
Name | Version |
---|---|
MariaDB | 10.5.4 |
Adminer | 4.7.7 |
フォルダ構成
今回は、次のようなフォルダ構成にします。
[Project_ROOT]
├ docker
│ └ web
│ ├ apache
│ │ └ 000-default.conf
│ ├ php
│ │ └ php.ini
│ └ Dockerfile
├ mysql
│ ├ data
│ └ initdb
└ docker-compose.yml
docker-compose.yml
version : "3"
services:
web:
container_name: web
build: ./docker/web
ports:
- 80:80
privileged: true
volumes:
- ./server:/var/www/html
db:
image: mariadb
restart: always
ports:
- 3307:3306
volumes:
- ./mysql/data:/var/lib/mysql
- ./mysql/initdb:/docker-entrypoint-initdb.d
environment:
- MYSQL_ROOT_PASSWORD=pwd
- MYSQL_DATABASE=test
- MYSQL_USER=user
- MYSQL_PASSWORD=pwd
adminer:
image: adminer
restart: always
ports:
- 8080:8080
Dockerfile (PHP+Apache)
docker/web
にwebコンテナ 構築用の「Dockerfile」を作成します。
PHP+Apacheのイメージをベースに、各種ライブラリとComposer、Laravelをインストールします。
FROM php:7.4-apache
COPY ./php/php.ini /usr/local/etc/php/
COPY ./apache/*.conf /etc/apache2/sites-enabled/
RUN apt-get update \
&& apt-get install -y zlib1g-dev libpq-dev mariadb-client unzip libzip-dev\
&& docker-php-ext-install zip pdo_mysql mysqli \
&& docker-php-ext-enable mysqli
# mod_rewriteを 有効に
RUN a2enmod rewrite
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
ENV COMPOSER_ALLOW_SUPERUSER 1
ENV COMPOSER_HOME /composer
ENV PATH $PATH:/composer/vendor/bin
WORKDIR /var/www/html
RUN composer global require "laravel/installer"
※ 以前のバージョンでは不要でしたが、今回インストールするcomposerには「libzip-dev」が必要なので一緒にインストールします。
php.ini
PHPの設定ファイルを作成します。
[Date]
date.timezone = "Asia/Tokyo"
[mbstring]
mbstring.internal_encoding = "UTF-8"
mbstring.language = "Japanese"
Apacheの設定ファイル
Apacheのポートや、ドキュメントルートなど、最低限の設定を行います。
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/public
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /var/www/html/public>
Options Indexes FollowSymLinks MultiViews
Require all granted
AllowOverride All
</Directory>
</VirtualHost>
Dockerコンテナの起動
各種ファイルの準備ができたら、次のコマンドを使用してDockerコンテナを起動します。最初は400MB近いファイルがダウンロードされ時間がかかるので、気長に待ちます。
$ docker-compose up -d
Laravelプロジェクトの作成
webのコンテナ にシェルでログインして、Laravelの新規プロジェクトを作成します。
# webコンテナにシェルで入ります
$ docker-compose exec web bash
# 新規のLaravelプロジェクト作成します
$ laravel new
動作確認
ここまでで、WEBとDBのコンテナの作成と、Laravel新規プロジェクトの作成は完了です。作成したコンテナが正常に動作しているか確認していきましょう。
ブラウザでhttp://127.0.0.1/
にアクセスして、Laravelプロジェクトが正常に動作しているか確認します。
次に、データベース(MariaDB)とAdminerが動作しているか確認します。
ブラウザでhttp://127.0.0.1:8080/
にアクセスし、docker-compose
で指定したパスワードでログインします。
ログインに成功すると、次のような画面が表示されます。
まとめ
PHP7.4のLaravel開発環境を作ってみました。デバッグ実行はできませんが、dockerを使えば簡単にPHP+Laravelの環境が作れて便利です。
0 件のコメント:
コメントを投稿