【Mac版】ゼロからLaravel環境をローカルで構築する方法

#はじめに

PHPをちょっと触ってみようと思ったので
言語のインストールからLaravelの構築までを
ローカルでやってみたという話。

Dockerでやってもいいとは思ったが、ひとまずはこれで

#動作環境

```
OS: MacOS Catalina 10.15.3
Homebrew: 2.2.13
```

#PHPのインストール

MacOSを利用しているのでHomebrewでインストールしていく。
(Homebrewが入ってない人はまず[これをやる](https://brew.sh/index_ja))

手始めに、バージョンなどを確認するためサーチ

```
$ brew serach php
==> Formulae
brew-php-switcher  php-code-sniffer   php@7.2            phplint            phpmyadmin         phpunit
php                php-cs-fixer       php@7.3            phpmd              phpstan
==> Casks
eclipse-php                            netbeans-php                           phpstorm
```

進行しているプロジェクトなどがあれば、それに合わせたバージョンを指定する必要があるが
個人的にその問題はないので最新バージョンを選択。
(@がついているものは過去バージョンらしい)
=>参照元：https://www.php.net/downloads

```
$ brew install php@7.4
```
今回はあえて明示的に最新版となるように`php@7.4`としておく

処理が終わったのを確認できたら念のためバージョン確認

```
$ php -v
PHP 7.4.5 (cli) (built: Apr 18 2020 03:17:54) ( NTS )
```
↑ 2020/4/21現在では7.4.5が最新バージョン

## -bash php: command not foundが出た場合

基本的にこの場合は`bash_profile`にphpのパスが通ってないのでターミナルでパスを通しておくと楽

```
$ echo 'export PATH="usr/local/opt/php@7.4/bin:$PATH"' >> ~/.bash_profile
```
※@以降を先ほどインストールしたバージョンに合わせる必要あり

`bash_profile`を反映

```
$ source ~/.bash_profile
```

もう一度`php -v`して`command not found`ではなくインストールしたバージョンが表示されたらOK


#composerのインストール
PHPで開発する上で必要なパッケージ依存関係ツールなので
Laravelをインストールする前に行う必要がある。
(composer経由でLaravelもインストールするので)

Railsにおける`bundler`のようなものと思えば個人的には腹落ちした

composerについてもHomebrew経由でインストールできるのでまずはサーチ。

```
$ brew search composer
```
表示されたらインストール

```
$brew install composer
```

完了したら例によって確認

```
$ composer -v
   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 1.10.5 2020-04-10 11:44:22

Usage:
  command [options] [arguments]

.
.
.
```

こんな感じで出力されればcomposerもインストールできた。

## -bash composer: command not foundが出た

これについても先ほどのPHPと同じく`bash_profile`にパスが通ってないので
同じようにパスを通しておく。

```
$ export PATH=$HOME/.composer/vendor/bin:$PATH
$ source ~/.bash_profile
```
PHPの時とファイルパスが違うので、仮に手打ちで入力するときは注意すること。

**パスを通したらバージョン確認しておくことも忘れない。**


# Laravelのインストール
いよいよフレームワークであるLaravelをインストールする。
これができれば、ひとまずローカルサーバを立ててブラウザで確認するまでできるので頑張る。

Laravelに関しては先ほどインストールしたcomposerを利用する方がいいらしいのでそれに従う。

```
$ composer global require laravel/installer
```

完了するまで若干時間がかかるので、この間にコーヒーなど入れておくと良い。
(もちろん回線速度やPCスペックに依存する)

完了したら同じくLaravelでもバージョン確認

```
$ laravel -v
Laravel Installer 3.0.1

Usage:
  command [options] [arguments]
.
.
.
```

ここで`laravel: command not found`が表示されるようであれば
`.bash_profile`で先ほどのcomposerのパスがちゃんと通ってるか確認する必要がある。

ちなみに弊環境では、時折`command not found`が出てくることがあったが、
再度`$ source ~/.bash_profile`し直してから
一度ターミナルを落として再起動すると有効化されたので、試してみるのもあり。


# 環境構築完了。　お疲れさまでした

今回はコードを書いていくわけではないが
一応サンプルプロジェクトを作成して、ローカルサーバを立てて動作を確認するまでやっておく。


適当なディレクトリにプロジェクトを作成するわけだが
とりあえずデスクトップに置いておいた方が後々で削除しやすいと思う。

```
$ cd desktop
$ laravel new sample
```

これでlaravelがチャチャッとプレーンなプロジェクトを作ってくれるので
コーヒーでも飲んで待機。

プロジェクトディレクトリが生成されたところで

```
$ php artisan serve
```
これでブラウザから`localhost:8000`にアクセスすると

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/190094/4c6c1aed-00ce-c246-a02e-1610ec7a98d7.png)

こんな感じの画面が表示されるので、これで動作までは確認できる。





余談だが`artisan`は職人の意味なので
PHPにはサーバを動かす見えない職人がいるらしい(知らんけど