Laravelはじめる時のメモ（Mac）

MacでLaravelを使う時の備忘録です。

![background.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/216132/72983567-0beb-cdee-cffb-591db8f456cf.png)

まず、開発環境に古いものがないかを確認する。

- PHP >= 7.1.3
- OpenSSL PHP Extension
- PDO PHP Extension
- mbstring PHP Extension
- tokenizer PHP Extension
- XML PHP Extension
- Ctype PHP Extension
- JSON PHP Extension
- BCMath PHP Extension

```terminal:terminal
$ php -v
→　PHP 7.1.23 (cli) (built: Feb 22 2019 22:19:32) ( NTS )
```

PHPのバージョンが足りていない気がするので、アップデートする。

```terminal:terminal
$ brew search php@7
==> Formulae
php@7.1                         php@7.2                         php@7.3
```

7.1で大丈夫と思うんですが、7.3をインストールします。

```
$ brew install php@7.3
```

10分位後にターミナルを再起動する

```
$ php -v
PHP 7.3.6 (cli) (built: May 31 2019 23:38:25) ( NTS )
```

```terminal:terminal
$ openssl version
→　LibreSSL 2.6.5
```

```terminal:terminal
$ php -i|grep PDO
→　PDO
```

```terminal:terminal
$ php -i|grep mbstring
→ mbstring extension makes use of "streamable kanji code filter and converter", which is distributed under the GNU Lesser General Public License version 2.1.
```

```terminal:terminal
$ php -i|grep tokenizer
tokenizer
```

```terminal:terminal
$ php -i|grep XML
XML Support => active
```

```terminal:terminal
$ php -i|grep BCMath
BCMath support => enabled
```

grepしても`Ctype`と`JSON`がないような気がする

```terminal:terminal
$ php -m
```
PHP読み込まれているモジュールを調べるには？
■参考リンク：
https://www.php.net/manual/ja/function.extension-loaded.php

`ctype`と`json`があったのでOK。

■インストール全般の参考リンク
https://readouble.com/laravel/5.5/ja/installation.html
http://kimagureneet.hatenablog.com/entry/2016/08/18/194857

## Laravelインストールしてたっけ？
まず、ローカルに`Laravel`あったかを調べる
ない場合「コマンドが見つかりません」と出ます。

```terminal:terminal
$ laravel -V
-bash: laravel: command not found
```

Laravelをインストールしよう。

```terminal:terminal
$ composer global require "laravel/installer"
```

「まず`composer`がない？」
まず`homebrew`と`composer`をインストールする場合はコレです。

```terminal:terminal
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
$ brew install composer
```

ホームディレクトリ直下の`.bashrc`にコレを書いておく。

```.bashrc:.bashrc
export PATH="~/.composer/vendor/bin:$PATH" 
```

パスを通す

```terminal:terminal
$ source .bashrc
```

ココまでやったら`Finder`で確認してみる。これで何にパスを通したか分かる。
![スクリーンショット 2019-06-10 11.54.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/216132/88e0ac96-71e4-780c-3514-406554f20283.png)

もう一度`Laravel`のバージョンを調べて見る。

```terminal:terminal
$ laravel -V
Laravel Installer 2.1.0
```

## 新しいプロジェクトを作成

新しいプロジェクトを作る

```teminal:terminal
$ laravel new ○○○○ //←自分の好きな名前をつけて下さい。
```

ディレクトリを移動する

```terminal:terminal
$ cd ○○○○
```

テスト用のサーバーを起動して見る。

```terminal:terminal
$ php artisan serve --host 0.0.0.0
Laravel development server started: <http://0.0.0.0:8000>
```

ブラウザで「http://0.0.0.0:8000」にアクセスすると、何かが見える。
![スクリーンショット 2019-06-10 12.05.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/216132/c998447b-c028-0f67-9576-a61e59460a7f.png)

ちなみにサーブを止めるには`Ctrl+C`を同時押しすると止まる。

### タイムゾーンを変更する
作られたプロジェクトの中にある`config/app.php`を開きます。
![スクリーンショット 2019-06-10 12.16.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/216132/cbb5429f-40bf-2acd-9e69-9ea9f84061bf.png)

開くと色々説明が書いてあるんですが、読まずに`timezone`で検索して`UTC`を`Asia/Tokyo`に書き換える。
`locale`の箇所も`en`になってるので`ja`に書き換える。
<img width="362" alt="スクリーンショット 2019-06-10 12.15.49.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/216132/0925e611-2e26-817d-cdf8-26e695f9f19b.png">

## 権限（パーミッション）を書き換える
`storage`と`bootstrap/cache`この2つは読み書きの権限が必要だそうです。
![スクリーンショット 2019-06-10 12.26.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/216132/9ce7faab-79c9-9be2-f734-6590ff6e6877.png)
権限を書き換えます。

```terminal:terminal
$ chmod 777 storage
$ chmod 777 ./bootstrap/cache/
```
## アプリケーションキーがある？調べる
自動で作られると思いますが。プロジェクトの中に`.env`というファイルがある。
そこに`APP_KEY`というのがあるか確認しておく。
![スクリーンショット 2019-06-10 12.34.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/216132/d29bb046-d376-cf9a-2826-4601fbcd942a.png)

laravelインストーラーのバージョンを上げる

```terminal:terminal
$ composer global update laravel/installer
```

データベースとの接続を確認する

```terminal:terminal
$ php artisan migrate
```

とうぜん接続エラー。データベースを用意する。