CoderでLaravel開発環境を作ってみた

# ざっくり動機説明
https://qiita.com/MegaBlackLabel/items/bbec97db769667962bce
上の記事で話題のCoderでLaravelで開発できるところまでやってみます。
個人的にCloud9とか以前から少し触っていましたが、普段からVSCode使っていたのでこちらに全力で乗っかろうと思い便乗して記事を書こうと思います。
# Laravelのバージョン
5.7
# プロジェクト開始
+Create ProjectからProjectを作成します。
プロジェクト名は適当です。
![01.png](https://qiita-image-store.s3.amazonaws.com/0/129094/1580801e-1b60-1bfc-32b0-055a0f14383e.png)

「Open in VSCode」をクリックするとエディターを開きます。
コンテナ内に/procjects/Laravelというディレクトリが作成されてます。
# PHPをmount
エディタ上で「Ctl+Shift+P」でパレットが開くので、
「mount」と入力して「Mount Value」と表示されるので選択する。
PHP7.2.7を選択する(現状このversionしかありませんでした)
![Screenshot 2019-03-03 at 16.25.58.png](https://qiita-image-store.s3.amazonaws.com/0/129094/be5d3b08-5ab9-b339-b1bc-c653ab8c2258.png)
#### PHPのversion確認
```bash
$ php -v
PHP 7.2.7 (cli) (built: Jul  4 2018 22:15:45) ( ZTS DEBUG )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
```

# 必要なPHP moduleをインストール
Laravelに必要なPHPのmoduleをインストールします。
Laravel5.7に必要なPHPのmoudleは以下公式ドキュメントで確認できるので、事前に「php -m」で足りないmoduleを確認しておきます。
https://readouble.com/laravel/5.7/ja/installation.html

## 足りないmoduleがない場合
何もしなくてもOK

## 足りないmoduleがある場合(現時点で足りませんでした)
moduleを追加するにしてもLanguage Mountという機能でPHPを使っているので、どうやってmoduleを追加するかわかりませんでした。
一度unmountして、PHPは普通にインストールします。
#### Install PHP7.2
```bash
$ apt install software-properties-common
# GPG ERRORが出たら対応する必要あり
$ add-apt-repository ppa:ondrej/php
$ apt-get update
$ apt-get install php7.2
```
#### PHPのversion確認
```bash
$ php -v
bash: /coder/bin/php: No such file or directory
```
ひとまず以下を対応
永続化したい場合は.bash_profileなどに書いたらいいかも。
#### PATHの読み込み順番変更
```
$ export PATH=/usr/bin:$PATH
```
#### もう一度PHPのversion確認
```bash
$ php -v
PHP 7.2.15-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Feb  8 2019 15:37:29) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.2.15-1+ubuntu16.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by
Zend Technologies
```

「php-m」で足りないmoduleを確認して追加する。
#### module追加
```bash
$ apt-get install php7.2-mbstring php7.2-xml php7.2-mysql
```

# Mysql
他のDBサーバーでも良いと思いますが、今回はMySQL5.7をインストールします。
「apt list mysql-server」で確認するとversionは5.7でした。
#### インストール&起動
```bash
$ apt-get install mysql-server
$ service mysql start
```
#### DB作成
```
$ mysql -u root -p
mysql> create database test;
Query OK, 1 row affected (0.02 sec)
```
# Laravelをインストール
```bash
$ curl -sS https://getcomposer.org/installer | php
$ cd /projects/{プロジェクト名}
$ composer create-project "laravel/laravel=5.7.*" laravel-test
```

# .env修正
.envでMySQLサーバーとのコネクション設定部分を変更しておく。

# サーバー立てる
```
$ cd laravel-test
$ php artisan serve --port=8080 --host=0.0.0.0
```
ドメインは0.0.0.0を指定しなければならないらしいです。
Portは、80,3000,3001,8000,8080,9000,9001から選ぶ必要があります。
Cloud9は確か8080,8081,8082とか３つぐらいしかポート開かなかったので多くて少し得をした気持ちになります。
詳細は、以下の公式ドキュメント。
https://coder.com/docs/cdr

サーバーを立てると、サイドバーのCDR.coを押下すると、URLが表示されます。
それをクリックすると、別タブが開きます。
![Screenshot 2019-03-03 at 18.20.07.png](https://qiita-image-store.s3.amazonaws.com/0/129094/6d61dbe4-c7c8-6dc7-d4ca-794f5169cf16.png)

Laravelの初期画面が表示されました！
![FireShot Capture 003 - Laravel - 8080-encouragedraughtbat.cdr.co.png](https://qiita-image-store.s3.amazonaws.com/0/129094/848a9fed-fa88-9990-ed11-1c5913a6edba.png)

終わりです。