LoginSignup
6
7

More than 5 years have passed since last update.

Macにlaradoc環境を作る

Last updated at Posted at 2018-12-27

前提

gitがインストールされている
dockerがインストールされている

Laradockのインストール

~ $ mkdir App
~ $ cd App
~App $ git clone https://github.com/LaraDock/laradock.git
~App $ ls
laradock
~App $ cd laradock

.envファイルの作成と編集

~App/laradock $ cp env-example .env

.envファイルのMYSQL_VERSIONを変更

### MYSQL #################################################

MYSQL_VERSION=5.7              <= ここを変更
MYSQL_DATABASE=MyProject       <= ここを変更
MYSQL_USER=default
MYSQL_PASSWORD=secret
MYSQL_PORT=3306
MYSQL_ROOT_PASSWORD=root
MYSQL_ENTRYPOINT_INITDB=./mysql/docker-entrypoint-initdb.d

### REDIS #################################################

.envファイルに以下3行を追加

DB_HOST=mysql
REDIS_HOST=redis
QUEUE_HOST=beanstalkd

コンテナの起動

~App/laradock $ docker-compose up -d nginx mysql redis beanstalkd
~App/laradock $ docker-compose ps
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                                      NAMES
4b9e9bfbf370        laradock_mysql        "docker-entrypoint.s…"   2 hours ago         Up 2 hours          0.0.0.0:3306->3306/tcp, 33060/tcp          laradock_mysql_1
17c5c04e58be        laradock_beanstalkd   "/usr/bin/beanstalkd"    4 hours ago         Up 2 hours          0.0.0.0:11300->11300/tcp                   laradock_beanstalkd_1
3cd77fae82d4        laradock_nginx        "/bin/bash /opt/star…"   4 hours ago         Up 2 hours          0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   laradock_nginx_1
eb01a20e059a        laradock_php-fpm      "docker-php-entrypoi…"   4 hours ago         Up 2 hours          9000/tcp                                   laradock_php-fpm_1
e1a21a50ad8a        laradock_workspace    "/sbin/my_init"          4 hours ago         Up 2 hours          0.0.0.0:2222->22/tcp                       laradock_workspace_1
20ddc90f2473        laradock_redis        "docker-entrypoint.s…"   4 hours ago         Up 2 hours          0.0.0.0:6379->6379/tcp                     laradock_redis_1
0c81420f0e99        docker:dind           "dockerd-entrypoint.…"   4 hours ago         Up 2 hours          2375/tcp                                   laradock_docker-in-docker_1

コンテナが立ち上がっている状態となります

mysqlのコンテナが立ち上がってこない場合

~/.laradock/data/mysql配下のファイルが壊れている可能性があり
このファイルとdockerコンテナ、dockerイメージを削除して再度設定

$ rm -rf ~/.laradock/data/mysql
$ docker rm laradock_mysql_1
$ docker rmi laradock_mysql
~App/laradock $ docker-compose build --no-cache
~App/laradock $ docker-compose up -d mysql

Laravelプロジェクトの作成

コンテナへのアクセスと準備

$ docker exec -it laradock_workspace_1 bash
root@xxxxxxxxxxxx:/var/www# apt-get update
root@xxxxxxxxxxxx:/var/www# apt-get install vim

Laravelプロジェクトの作成

root@xxxxxxxxxxxx:/var/www# composer create-project laravel/laravel MyProject
root@xxxxxxxxxxxx:/var/www# ls
laradock MyProject

パーミッション設定

root@xxxxxxxxxxxx:/var/www# cd MyProject
root@xxxxxxxxxxxx:/var/www/MyProject# chmod 766 -R storage
root@xxxxxxxxxxxx:/var/www/MyProject# chmod 766 bootstrap/cache

Nginxのrootを変更

root@xxxxxxxxxxxx:/var/www/laradock# vim nginx/sites/default.conf
server {

    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    # For https
    # listen 443 ssl default_server;
    # listen [::]:443 ssl default_server ipv6only=on;
    # ssl_certificate /etc/nginx/ssl/default.crt;
    # ssl_certificate_key /etc/nginx/ssl/default.key;

    server_name localhost;
    root /var/www/MyProject/public;                <= ここを変更
    index index.php index.html index.htm;

    location / {
         try_files $uri $uri/ /index.php$is_args$args;
    }

プロジェクトのDB設定を変更

root@xxxxxxxxxxxx:/var/www/MyProject# vim .env
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=MyProject
DB_USERNAME=root
DB_PASSWORD=root

編集が完了したら保存しコンテナを再起動

~App/laradock $ docker-compose restart

localhost [http://localhost/] にアクセス

参考サイト
Laradockを使ったLaravel開発環境構築
LaradockでMySQLがどうしても立ち上がらない人あつまれー!
LaradockのプロジェクトコンテナとMySQLコンテナを接続する方法

6
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7