#はじめに
Laravelの勉強するための開発環境作成手順メモです。
自分用なので雑い。
#準備
Dockerの設定だったりしていきます。
##ディレクトリ
プロジェクトディレクトリ配下に以下2つのディレクトリを作成。
- Docker
- server
##docker-compose.yml
プロジェクトディレクトリ配下にdocker-compose.ymlファイルを作成。
version: '3'
services:
php:
container_name: php
build: ./docker/php
volumes:
- ./server:/var/www
nginx:
image: nginx
container_name: nginx
ports:
- 80:80
volumes:
- ./server:/var/www
- ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf
depends_on:
- php
db:
image: mysql:5.7
container_name: db
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: test_db
TZ: 'Asia/Tokyo'
command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
volumes:
- ./docker/db/data:/var/lib/mysql
- ./docker/db/my.cnf:/etc/mysql/conf.d/my.cnf
- ./docker/db/sql:/docker-entrypoint-initdb.d
ports:
- 4306:3306
##Dockerfile
Dockerディレクトリ配下にphpフォルダを作成。
その中にDockerfileを作成。
FROM php:7.3-fpm
COPY php.ini /usr/local/etc/php/
RUN apt-get update \
&& apt-get install -y zlib1g-dev libzip-dev mariadb-client \
&& docker-php-ext-install zip pdo_mysql
#Composer install
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
RUN composer global require "laravel/installer"
##PHPの設定
Dockerfileと同階層でphp.iniファイルを作成。
[Date]
date.timezone = "Asia/Tokyo"
[mbstring]
mbstring.internal_encoding = "UTF-8"
mbstring.language = "Japanese"
##nginx
Dockerディレクトリにnginxフォルダを作成。
その中にdefault.confファイルを作成。
server {
listen 80;
root /var/www/public;
index index.php;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass php:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
##MySQL
Dockerディレクトリにdbフォルダを作成。
その中にmy.cnfファイルを作成。
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
[client]
default-character-set=utf8mb4
#Laravelプロジェクト
プロジェクトのルートディレクトリに移動。
以下コマンドを実行。
docker-compose up -d
docker-compose exec php bash
laravel new
#確認
locallhostで画面が表示されれば成功。
やったね。
#DB設定
dockerで開発環境を作った場合、.envファイルとdocker-compose.ymlファイルの情報を合わせとかないとmigrateできなかったりとめんどくさいので今やっとく。
DB_CONNECTION=mysql
DB_HOST=db
DB_PORT=3306
DB_DATABASE=test_db
DB_USERNAME=root
DB_PASSWORD=root
これでDBの登録も問題なし。
#まとめ
自分用メモなのでめちゃくちゃざっくりしてますが参考になれば。