Laravel
PHP を利用して composer install する
$ curl -sS https://getcomposer.org/installer | php
$ mv composer.phar /usr/local/bin/composer
$ composer -V
laravel new するときにパッケージが古くてエラーになる場合があるので更新しておく
$ composer global update
Laravel のプロジェクトを作る
https://readouble.com/laravel/5.6/ja/installation.html
$ laravel new [project]
プロジェクト名のディレクトリが作成されてその中に Laravel がインストールされる
Docker
nginx + MySQL (+ phpMyAdmin) の docker-compose.yml を作成する
作成したプロジェクトディレクトリをルートとしたサンプル
docker-compose.yml
version: '3'
services:
web:
image: nginx:1.13.5-alpine
ports:
- "80:80"
depends_on:
- app
volumes:
- ./default.conf:/etc/nginx/conf.d/default.conf
- ./:/var/www/html #laravel projectディレクトリ配下をマウント
app:
build: ./ #同じディレクトリの Dockerfile image:設定を使う
env_file: .env
depends_on:
- db
volumes:
- ./:/var/www/html
db:
image: mysql:5.7.19
env_file: .env
environment: #.env のDB設定を共有して構築
MYSQL_DATABASE: ${DB_DATABASE}
MYSQL_USER: ${DB_USERNAME}
MYSQL_PASSWORD: ${DB_PASSWORD}
MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}
ports:
- "3306:3306"
volumes:
- db-data:/var/lib/mysql
phpmyadmin:
image: phpmyadmin/phpmyadmin
ports:
- "8080:80" #localhost:8080 で phpMyAdmin にアクセスできる
links:
- db:mysql
volumes:
db-data: #DB の永続化
Dockerfile
FROM php:7.1.9-fpm-alpine #app サービスで使う php image:
RUN docker-php-ext-install pdo_mysql mysqli mbstring
nginx の設定
services:web:volumes で指定したパスに作成する
プロジェクトディレクトリ直下のサンプル
default.conf
server {
listen 80;
server_name _;
root /var/www/html/public; #laravel index.php の場所は public 配下
index index.php;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(\.+)$;
fastcgi_pass app:9000; #サービス名と関連付ける
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
起動
$ docker-compose up -d