LaraDock 開発環境構築


## 1. git インストール ##

[gitはここ](https://git-scm.com/ "git")


## ２. dockerインストール ##

dokcer id を取得して以下からインストールください。
[windowsはここ](https://store.docker.com/editions/community/docker-ce-desktop-windows "docker")
[macはここ](https://store.docker.com/editions/community/docker-ce-desktop-mac "docker")

## 3. LaraDock クローン ##

ホームディレクトリにdevを作成してそこにcloneします。

```
$ cd ~
$ mkdir dev
$ cd dev
$ git clone https://github.com/Laradock/laradock.git
```

## 4. LaraDock カスタマイズ(mySql) ##

```
$ cd laradock
$ cp env-example .env
```


.envのmysqlのバージョンを固定するため、以下のファイルを編集します。

```laradock/.env
MYSQL_VERSION=5.7.22
```

PHP バージョン変更（最新版では不要）

```laradock/.env
PHP_VERSION=7.3
```


## 5. LaraDock カスタマイズ(nginx) ##

project.localというURLで自分のLaravelプロジェクトにアクセスできるようにします。


```
$ cd nginx/sites
$ cp laravel.conf.example project.conf
```

larave.conf.exampleではlaravelというフォルダで動かすようにかかえれている。
そのlaravel部分をprojectに書き換えます。


```project.conf
server {

    listen 80;
    listen [::]:80;

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

    server_name project.local;
    root /var/www/project/public;
    index index.php index.html index.htm;

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

    location ~ \.php$ {
        try_files $uri /index.php =404;
        fastcgi_pass php-upstream;
        fastcgi_index index.php;
        fastcgi_buffers 16 16k;
        fastcgi_buffer_size 32k;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        #fixes timeouts
        fastcgi_read_timeout 600;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }

    location /.well-known/acme-challenge/ {
        root /var/www/letsencrypt/;
        log_not_found off;
    }

    error_log /var/log/nginx/project_error.log;
    access_log /var/log/nginx/project_access.log;
}
```

## 6. ローカルアドレスの設定 ##

(mac)sudo vim /private/etc/hosts
(win)c:\windows\system32\driver\etc\hosts


※windowsの場合は、管理者権限で修正します。
いったん、デスクトップへコピーして
編集して、
戻す


```/private/etc/hosts
127.0.0.1	project.local
::1 project.local
```


## 7. データベースの作成 ##

作業ディレクトリ: laradock/mysql/docker-entrypoint-initdb.d/

```
hrsiiMac:laradock hrsi$ pwd
/Users/hrsi/dev/laravel/laradock

$ cd mysql/docker-entrypoint-initdb.d/
$ cp createdb.sql.example createdb.sql
```

$のコメントを外し、以下のように編集します。


```createdb.sql
CREATE DATABASE IF NOT EXISTS `project` COLLATE 'utf8_general_ci' ;
GRANT ALL ON `project`.* TO 'default'@'%' ;
```

データベースを作成します。


作業ディレクトリ: laradock

```

#mysql起動

$ docker-compose up -d mysql


データベースコンテナに入る
$ docker-compose exec mysql bash

# rootユーザーでsqlを実行
# 「Enter password:」と表示されるので、rootと入力
mysql -u root -p < /docker-entrypoint-initdb.d/createdb.sql

# DBが作成されたか確認しましょう。
# projectがあればok
mysql -u root -p
show databases;


#データベースインポート
# mysql -uroot -proot waterbus < /docker-entrypoint-initdb.d/db.sql

```

## 8. LaraDock起動 ##

作業ディレクトリ: laradock


```
#一度停止
$ docker-compose stop

docker-compose up -d nginx mysql

（ダウンロードで時間かかります。）

```

以下の表示になればOK
![スクリーンショット 2019-08-03 09.21.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/33953/f36c2144-499e-89c0-b28f-4f04a5a15b80.png)

エラーが出たら、
docker-compose down
して、
再び、
docker-compose up -d