Windows11でLaravelの環境構築してみた()

## 導入
こんにちは、こんばんは、おやすみなさい、**Twil3akine**です。

今回、純粋なWindows (=Dockerとかを使わず) にLaravel環境を構築(超助けてもらいながら)したので、備忘録と誰かの助けになればいいなと思い、残しておきます。

<br>

1. **php** の インストール
2. **Laravel** の インストール

<br>

という感じで行こうと思います。

## 1. php の インストール
1. phpのインストール

https://windows.php.net/download#php-8.3 に飛んでもらい、スレッドセーフの方で自身のバージョンにあうもの (= x64 or x86) のZipを選んでダウンロードし、そのままダウンロードしたものを解凍してほしいのですが、個人的なおすすめは `C:\php` というディレクトリを新しく作ってそこに解凍するのをおすすめします。

<br>
2. PATH通し

PCの検索欄からコントロールパネル -> 
コントロールパネルの右上の検索欄に「環境変数」で出てくる「システム環境変数の編集」をクリック -> 
下側にある「環境変数」をクリック ->
下側のシステム環境変数の方の「Path」をクリックし、編集 -> 
「新規」をクリックし、先程の解凍先 (おすすめしたのをそのまま使っているなら `C:\php`)を入力してEnter -> OK

<br>

PowerShell or Command Prompt を開いて、
```sh
$ php -v
PHP 8.3.11
```
となれば、Path通し終わりです。
Cannot Find ~ とか出ていてもとりあえずおいておきましょう。

<br>

## 2. Laravel の インストール
1. composer の ダウンロード

https://getcomposer.org/download/
の　Composer-Setup.exe をインストールしてもらい、実行すると、管理者権限もった状態でするかしないのか(曲解)と選択しろと言われるので、権限を持ち、進み、Developer Mode は よくわからないので OFFで進むと、php.exeのパスを入力されていると思うので (されていなかったら自分で指定してください)、そのまま全部Next押しちゃいましょう。

<br>

インストールが終わったらまた、PowerShell or Command Prompt を開いて、
```sh
composer -v
   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 2.7.8 2024-08-22 15:28:36

Usage:
  command [options] [arguments]

Options:

・
・
・


  reinstall            Uninstalls and reinstalls the given package names
  remove               [rm|uninstall] Removes a package from the require or require-dev
  require              [r] Adds required packages to your composer.json and installs them
  run-script           [run] Runs the scripts defined in composer.json
  search               Searches for packages
  self-update          [selfupdate] Updates composer.phar to the latest version
  show                 [info] Shows information about packages
  status               Shows a list of locally modified packages
  suggests             Shows package suggestions
  update               [u|upgrade] Updates your dependencies to the latest version according to composer.json, and updates the composer.lock file
  validate             Validates a composer.json and composer.lock
```

みたいな感じになっていたら大丈夫だと思います。

<br>
2. Laravel の　アプリケーションを作ってみる。

PowerShell or Command Prompt を開いて、

```sh
$ composer create-project laravel/laravel [お好みのディレクトリ名]

Creating a "laravel/laravel" project at "./tmp"
Installing laravel/laravel (v11.1.4)
  - Installing laravel/laravel (v11.1.4): Extracting archive
Created project in C:\Users\twil3\serverApp\Laravel\fleamarket\tmp
> @php -r "file_exists('.env') || copy('.env.example', '.env');"
Loading composer repositories with package information
Updating dependencies
Lock file operations: 107 installs, 0 updates, 0 removals
  - Locking brick/math (0.12.1)
  - Locking carbonphp/carbon-doctrine-types (3.2.0)
  - Locking dflydev/dot-access-data (v3.0.3)
  - Locking doctrine/inflector (2.0.10)
  - Locking doctrine/lexer (3.0.1)
  - Locking dragonmantank/cron-expression (v3.3.3)
  - Locking egulias/email-validator (4.0.2)
  - Locking fakerphp/faker (v1.23.1)
  - Locking filp/whoops (2.15.4)

・
・
・
  
  - Installing sebastian/code-unit-reverse-lookup (4.0.1): Extracting archive   
  - Installing phpunit/php-code-coverage (11.0.6): Extracting archive
  - Installing phar-io/version (3.2.1): Extracting archive
  - Installing phar-io/manifest (2.0.4): Extracting archive
  - Installing myclabs/deep-copy (1.12.0): Extracting archive
  - Installing phpunit/phpunit (11.3.1): Extracting archive
47 package suggestions were added by new dependencies, use `composer suggest` to see details.
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi

   INFO  Discovering packages.

  laravel/sail .......................................................... DONE  
  laravel/tinker ........................................................ DONE  
  nesbot/carbon ......................................................... DONE  
  nunomaduro/collision .................................................. DONE  
  nunomaduro/termwind ................................................... DONE  

79 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
> @php artisan vendor:publish --tag=laravel-assets --ansi --force

   INFO  No publishable resources for tag [laravel-assets].

No security vulnerability advisories found.
> @php artisan key:generate --ansi

   INFO  Application key set successfully.

> @php -r "file_exists('database/database.sqlite') || touch('database/database.sqlite');"

   INFO  Preparing database.

  Creating migration table ....................................... 7.28ms DONE  

   INFO  Running migrations.

  0001_01_01_000000_create_users_table .......................... 20.74ms DONE  
  0001_01_01_000001_create_cache_table ........................... 5.02ms DONE  
  0001_01_01_000002_create_jobs_table ........................... 12.24ms DONE
```
となれば、アプリケーションの作成は完了なので
```sh
$ cd [作成したディレクトリ名]

$ php artisan serve 

 INFO  Server running on [http://127.0.0.1:8000].

  Press Ctrl+C to stop the server

  2024-08-31 00:59:59 / ................................................ ~ 1s
```
と表示が完了されたら、`localhost:8000` にアクセスすると、
![スクリーンショット 2024-08-30 235918.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3746729/6e30b676-482e-c986-39ad-f0864940121f.png)
と出たら成功です。立派な**Laraveler**です (知らんけど。)

もし、何かエラーが出たらGPTなりGoogle先生などに聞いてみてください。
おそらく、拡張機能の問題だと思います。**php.ini**をいじれば治ると思います。

それではまた、どこかで。