XAMPPとLaravelの導入 (Windows)

# はじめに

#### 環境
- Windows 10 Pro 20H2
- XAMPP 8.0.2
- Apache 2.4.46
- PHP 8.0.2
- Composer 2.0.11
- Laravel Installer 1.5.0
- Laravel Framework 8.31.0

# XAMPP
- ダウンロードします。
    - [XAMPP (公式)](https://www.apachefriends.org/jp/index.html)
- 素直にインストールします。
    - UACに対して警告されますが、そのまま進みます。
    - インストールするものを選択します。
        - 私の場合、FileZilla、Mercury、Tomcat、Perlのチェックを外しました。
        - MySQLと書かれていますが、実際はMariaDBです。
- コンパネを起動している場合は、いったん終了します。
    - <font color=red>**【重要】**</font> ウインドウを閉じてコンパネを終了してはいけません。
        - 「Quit」を使用せずにウインドウを閉じると、バックグラウンドプロセスが残ってしまいます。
        - コンパネを閉じる場合は、サーバが稼働中かどうかにかかわらず、必ず、「Quit」を使用しましょう。
- パスが通っているか確認します。
    - スタートメニュー ⇒ 「環境変数を編集」から`C:\xampp\php`へパスを通します。

```text
C:>php --version
PHP 8.0.2 (cli) (built: Feb  3 2021 18:36:40) ( ZTS Visual C++ 2019 x64 )
Copyright (c) The PHP Group
Zend Engine v4.0.2, Copyright (c) Zend Technologies
```

- 管理者ターミナルから、フォルダにアクセス権を設定します。
    - ユーザー名や元のアクセス権は、環境によって異なります。
    - GUIから操作する場合は、該当ユーザーの継承を止めてから権限を変更します。

```text:コマンドプロンプト&nbsp;(管理者)
C:\WINDOWS\system32>cacls C:\xampp
C:\xampp BUILTIN\Administrators:(OI)(CI)(ID)F
         NT AUTHORITY\SYSTEM:(OI)(CI)(ID)F
         BUILTIN\Users:(OI)(CI)(ID)R
         NT AUTHORITY\Authenticated Users:(ID)C
         NT AUTHORITY\Authenticated Users:(OI)(CI)(IO)(ID)C
C:\WINDOWS\system32>cacls C:\xampp /e /t /p BUILTIN\Users:F
C:\WINDOWS\system32>cacls C:\xampp
C:\xampp BUILTIN\Users:(OI)(CI)F
         BUILTIN\Administrators:(OI)(CI)(ID)F
         NT AUTHORITY\SYSTEM:(OI)(CI)(ID)F
         NT AUTHORITY\Authenticated Users:(ID)C
         NT AUTHORITY\Authenticated Users:(OI)(CI)(IO)(ID)C
```

- コンパネを開いて動作を確認します。
    - Apacheが起動しない場合は、`Netstat`ボタンを押してポート80, 443が使用されていないか確認します。
        - Skypeやunity-acceleratorなどが80を使用しますので設定で変更します。
- コンパネを使わずに使うこともできます。
    - ⇒ [XAMPP コンパネを使わない制御 (Windows)](https://qiita.com/tetr4lab/items/4d0c561e7d7b9afca879)

## 更新
### XAMPP
まだやってません。

### PHP
まだやってません。

### MariaDB
まだやってません。

### phpMyAdmin
- ダウンロードして展開します。
    - [Bringing MySQL to the web (公式)](https://www.phpmyadmin.net/files/)
    - 展開したフォルダを、`phpMyAdmin`とリネームしておきます。
- サーバを停止します。
- バックアップします。

```text
C:\>ren C:\xampp\phpMyAdmin phpMyAdmin__
```

- 展開してあったフォルダを移動します。(デスクトップに展開してあった場合)

```text
C:\>move %USERPROFILE%\Desktop\phpMyAdmin C:\xampp\
```

- バックアップから設定をコピーします。

```
C:\>copy C:\xampp\phpMyAdmin__\config.inc.php C:\xampp\phpMyAdmin\
```

- サーバを起動して管理ページにアクセスし、問題ないか確認します。
- バックアップを削除します。

# Comporser
- ダウンロードします。
    - [Download Composer (公式)](https://getcomposer.org/download/)
- 素直にインストールします。
    - 一箇所、選択ではなく確認のチェックがありますが、それ以外は次へ送るだけです。
- パスが通っているか確認します。
    - スタートメニュー ⇒ 「環境変数を編集」から`%USERPROFILE%\AppData\Roaming\Composer\vendor\bin`へパスを通します。

```text
C:\>composer --version
Composer version 2.0.11 2021-02-24 14:57:23
```

## 更新

```text
C:\>composer self-update
~ 略 ~
```

# Laravel
- ここでは使用しませんが、一応
    - [Laravel (公式)](https://laravel.com/)
    - [Laravelクイックスタート (jp公式)](https://readouble.com/laravel/4.2/ja/quick.html)
- ComposerでLaravelインストーラを導入します。

```text
D:\development>composer global require laravel/installer
~ 略 ~
D:\development>laravel --version
Laravel Installer 4.1.1
```

- 新しいLaravelプロジェクトを作ります。
 
```text
D:\>md D:\development\laravel
D:\>cd D:\development\laravel
D:\development\laravel>laravel new practice
~ 略 ~
```

- LaravelをPHPの開発用組み込みサーバーで起動します。

```
D:\development\laravel>cd practice
D:\development\laravel\practice>php artisan serve
Starting Laravel development server: http://127.0.0.1:8000
[Sun Mar  7 17:51:10 2021] PHP 8.0.2 Development Server (http://127.0.0.1:8000) started
```
- `http://127.0.0.1:8000/`へアクセスして、フロントページが表示されたら成功です。
- Ctrl+Cでサーバを停止します。

## ショートカット
ショートカットの「リンク先」を以下のようにします。

```text
C:\xampp\php\php.exe artisan serve
```

「作業フォルダー」を以下のようにします。

```text
D:\development\laravel\practice
```

これで、前述の起動状態になります。

## 更新

```text
D:\>cd D:\development\laravel\practice
D:\development\laravel\practice>composer update
~ 略 ~
```