MacでLaravel8インストール前に躓いた話

へい、豚野郎です。
Laravelの大きい変更点の記事を書こうとしたんですけど、
まずMacでLaravel8のインストールで躓いたので、その記事を書いていきます。

# 1. 対応PHPインストール
Laravel8を動かすのに最低でもPHP7.3でなければならないです。
 ・PHP7.3インストール(失敗)
```
$ brew install php@7.3
```
以下のエラーが出ました。
```
$ unknown or unsupported macOS version: :dunno (MacOSVer
```
調べてみると7.3のサポートは終わったみたいです。
そのため、7.4をインストールします。

・PHP7.4インストール
```
$ brew install php@7.4
```
パスを通すのを忘れずに。
```
$ echo 'export PATH="/usr/local/opt/php@7.4/bin:$PATH"' >> ~/.zshrc
$ echo 'export PATH="/usr/local/opt/php@7.4/sbin:$PATH"' >> ~/.zshrc
```

PHP再スタート
```
$ brew services start php@7.4
```
確認します。
```
$ php -v         
PHP 7.4.29 (cli) (built: Apr 14 2022 11:48:33) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.29, Copyright (c), by Zend Technologies
```
・PHP7.4インストール補足：
それでもダメな時は、以下を実行すると成功するかも（？）。
```
$ brew update-reset
```

PHP7.4インストール
```
$ brew install php@7.4
```

# 2. Laravel8インストール
PHP7.4がインストールされたので、Laravel8をインストールします。
```
$ composer create-project laravel/laravel laravel8
```


```
PHP Fatal error:  Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/local/bin/composer/src/Composer/DependencyResolver/RuleWatchGraph.php on line 52

Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/local/bin/composer/src/Composer/DependencyResolver/RuleWatchGraph.php on line 52

Check https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors for more info on how to handle out of memory errors.
```
おおん？？？？？？
なんだ。
```
$ php -r "echo ini_get('memory_limit').PHP_EOL;"
128M
```
容量が足りないと怒られました。
php.iniの変更が必要。
```/etc/php.ini/php.ini
memory_limit = -1
```
無限に変更しました。

再度、Laravel8インストール
```
$ composer create-project laravel/laravel laravel8
```
```
PHP Fatal error:  Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/local/bin/composer/src/Composer/DependencyResolver/Solver.php on line 223

Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/local/bin/composer/src/Composer/DependencyResolver/Solver.php on line 223

Check https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors for more info on how to handle out of memory errors.
```

ふぁ！？
多分php.iniが反映されていないです（経験則）。
PHP再起動。
```
$ brew services restart php@7.4 
```

もっかいLaravel8インストール
```
PHP Fatal error:  Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/local/bin/composer/src/Composer/DependencyResolver/RuleWatchGraph.php on line 52

Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/local/bin/composer/src/Composer/DependencyResolver/RuleWatchGraph.php on line 52

Check https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors for more info on how to handle out of memory errors
```

え・・・・・・。
もうMac再起動・・・・・。

(再起動後)
だめでした。

php.iniが反映されているかチェック。
```
$ php -r "echo ini_get('memory_limit').PHP_EOL;"
128M
```
はい、反映されてませんね。

アパッチ再起動でどうだ！
```
$ sudo /usr/sbin/apachectl restart 
$ php -r "echo ini_get('memory_limit').PHP_EOL;"
128M
```
?????????
なぜ。

いじってるphp.iniが違う？
```
$ php -i | grep php.ini
```

これで検索した位置のphp.iniを確認する。
ここのphp.iniを修正すると128MBのままでした。
修正後。
```
$ php -r "echo ini_get('memory_limit').PHP_EOL;"
-1
```

お？
いけんじゃね？

Laravel8インストール！
```
$ composer create-project laravel/laravel laravel8
```
いけたあああああああああああああああ！！！！！

初期画面は・・・・・

404
NOT FOUND

だめやん。

# 3. Laravel8初期画面表示
これでどうだ。
```
$ composer update
Laravel GET /Laravel8/public - require(): Failed opening required
```
見たら、そもそもコンポーサーが入ってない？
Venderフォルダもなし
```
$ composer install
```
エラーなくインストールはできた.

404
NOT FOUND

なぜ。


```/etc/apache2/httpd.conf
DocumentRoot "/Library/WebServer/Documents"
<Directory "/Library/WebServer/Documents">
```

変更
```/etc/apache2/httpd.conf
DocumentRoot "Laravel8のパス"
<Directory "Laravel8のパス">
```
これで初期画面の表示ができました。
初期画面表示。
![screencapture-localhost-8080-Laravel8-public-2022-05-22-00_18_11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/497869/f70ed517-c4de-e6c9-3303-d2225e4258fb.png)
できたああああああああああああああああ！！！！！！！！！
今日はここまでです。

次回は、Laravel8の大きい変更点を書いていきます。