Read DoubleのComposerでLaravelインストールで躓いたところ

#Read DoubleのComposerでLaravelインストールで躓いたところ
プログラミング学習歴1年未満の初心者がLaravelをインストールするまでの道のり。
laravel公式(日本語ver)と言われる[Read Double](https://readouble.com/)だけではわからなかったため途中、調べたところを追加。

##使用環境(動作環境)
* windows10Home(COREi7)
* xampp7.3.18

##Composerシステム全体のvendor/binディレクトリを$PATHへ登録してくださいって何？
**$PATHへ登録する＝PATHを通す＝環境変数(環境パス)に登録する**
環境パスのことすらわからなかった(多分これまでも環境構築で設定してきたはず)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/615830/5d7db8a4-e24d-c317-d6ba-4113a3662def.png)

###PATHを通すとは

>特定のプログラムを「プログラム名だけで実行できるようにする」こと。
もっと言うと、プログラム名だけで実行できるようにするために、PATH という環境変数（設定の一種）に「このプログラムも名前だけで実行できるようにしてください」という値を追加すること。
[「PATHを通す」の意味をできるだけわかりやすく説明する試み](https://qiita.com/sta/items/63e1048025d1830d12fd#:~:text=%E3%80%8CPATH%20%E3%82%92%E9%80%9A%E3%81%99%E3%80%8D%E3%81%A8%E3%81%AF,%E5%80%A4%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%80%82)

* もっとわかりやすく言うと、拡張子が「.exe」のファイルの実行を簡単にするための手段みたいだね。

* 環境パスはどこで設定するの？
コントロールパネル → システムとセキュリティ → システム → システムの詳細設定

(ちなみにコントロールパネルはwindowsシステムツールの中にあるよ！)

システム詳細設定を押した以下の画面の「環境変数」
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/615830/4b52ff9c-abb0-dacd-6c3c-f7863cff1f12.png)

環境変数を押すと以下の画面の「システム環境変数」の「Path」をクリック → 「編集」 → 「新規」で「**%USERPROFILE%\AppData\Roaming\Composer\vendor\bin**」を追加
(ここの%USERPROFIEL%は「C:\Users\ユーザーネーム」みたいな感じ)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/615830/d159d22a-8cd6-acd1-46a7-cf9d7ba88ef9.png)

これでComposerシステム全体のvendor/binディレクトリを$PATHへ登録が完了。

##次に躓いたのはpublicディレクトリの設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/615830/80fa8a87-f694-5afc-58c2-19cba4c8c41c.png)

ドキュメントルートがpublicディレクトリになるように設定してくださいということなんだけどそもそもドキュメントルートって何？状態。

>ドキュメントルート(DocumentRoot)とはWeb上に公開することのできるディレクトリのルートのことです。
設定方法としては，見せたいディレクトリのパスを指定をします。すると，そのディレクトリ配下のファイルへすべてアクセスができるようになります。
たとえば，DocumentRoot直下にfoo.htmlというファイルを配置をします。するとhttp://servername/foo.html
というURLで対象のファイルにアクセスをすることができます。
[第8回　知っておきたいapacheの基礎知識　その4](https://gihyo.jp/admin/serial/01/unix/0008#:~:text=DocumentRoot%E3%81%A8%E3%81%AFWeb%E4%B8%8A,%E3%82%92%E9%85%8D%E7%BD%AE%E3%82%92%E3%81%97%E3%81%BE%E3%81%99%E3%80%82)

つまりたくさんディレクトリ(フォルダ)があるんだけど、**ドキュメントルートとして設定したディレクトリの中身が公開されます**よということ。

この設定方法にはいろいろあるんだけど私は次の方法でドキュメントルートをLaravelプロジェクトの中のpublicに変更しました。
(**ちなみに今回紹介する方法ではLaravelプロジェクトごとに(イメージとしてはアプリを作るごと)ドキュメントルートの設定を変えることになります**。どうやらlocalhost名?をプロジェクトごとに設定したりもできる(いちいちプロジェクトごとにドキュメントルートを変更しなくても良い)方法があるみたいなのですが私にはまだわかりません;;)

###Laravelプロジェクトのpublicをドキュメントルートに設定する方法～apache下で使用
今回はxampp内のhtdocs内にLaravelプロジェクトを生成しています。(推奨されていないようですが)

* ファイル操作します
「XAMPP」 → 「apache」 → 「conf」の中の「httpd.conf」を設定変更
**このときhttpd.confファイルはコピーしてhttpd_backup.confなどに名前変更してバックアップを保存しておいてください。**

* httpd.confファイルを開いたら、「DocumentRoot "C:/xampp/htdocs"」という行を探す

変更前：DocumentRoot "C:/xampp/htdocs"
変更後：C:/xampp/htdocs/Laravelプロジェクト作成時の名前/public

* 次に「<Directory>ブロック」を探す
(2か所あるのですが2か所とも変更で良いのかどなたか教えていただけると助かります)

変更前：

```
\<Directory "C:/xampp/htdocs">

　　　    　　...
\</Directory>
```

変更後：

```
\<Directory "C:/xampp/htdocs/Laravelプロジェクト作成時の名前/public">

　　　    　　...
\</Directory>
```

(xamppのドキュメントルートは「htdocs」フォルダ)
(ちなみにxamppの中にはapacheが入っているよ)

* この2点をLaravelのプロジェクトが変わるごとに変えるという方法です。
(少し手間はかかるし同時にプロジェクトを進行しにくいのであまり良い方法ではないかもしれません。)

##その次に躓いたのはディレクトリパーミッションの設定
どうやらフォルダへのアクセス権限を変更せよということらしい。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/615830/89d1f973-a340-c150-c6e4-c25471639721.png)

聞いたところ、Macだとエラーが出て設定が必要になることがあるのだけれど、windowsだとエラーが出ず、設定が必要ないかもしれないとのこと。

以上、躓きまくりましたがなんとかLaravelをインストールできた。
そしたらなんと、**Laravel 8.11.2**をインストールしていたので再インストールを検討中...

##おまけ
virtual hostの設定もしたのでそれについては別記事にまとめたいと思っています。
[【PHP/Laravel】php artisan serveを使わずにVirtual Hostを設定する](https://qiita.com/N0S0/items/0a6c2666a9c873ade476)