序
筆者はものぐさである。
よって、PHP開発ではDocker+WSL2ではなく専らWindows版XAMPPを使っているのだが、laravelではDocker+WSL2が推奨となっている。
フ〇ック。
という訳で筆者なりにXAMPPでlaravelのインストールと認証周りの設定を行う手順を記すことにした。
準備
まずあなたのwindowsなりmacなりにXAMPPを入れる。
XAMPPはここで最新版がダウンロード出来るのでダウンロードとインストールをする事。
もしあなたの会社のセキュリティポリシーが厳しくてインストーラーを使えないのであればシステム管理者にインストール許可を貰うのを忘れずに。
次にcomposerのインストールとパスを通す作業がある。
この手順はこちらのページを見ておけば良い
開始
コマンドプロンプトを立ち上げる。
そして
cd xamppをインストールしたフォルダ\htdocs
と入力しhtdocsフォルダに移動する。
次に
composer create-project laravel/laravel プロジェクトのフォルダ名 "8.*"
と入力しエンターキーを押してインストールする。
ここではlaravelのバージョンを8.x系で決め打ちしているが、筆者環境では10.x系の動作が不安定だったので8.xにしている。
設定
インストールが終わったら
"C:\Program Files\nodejs\npm.cmd" install
で依存モジュールをインストールする。
その後
xamppをインストールしたフォルダ\htdocs\プロジェクトのフォルダ名
を開いてインストールしたフォルダに入る。
直下の.envファイルを開き、xamppデフォルトのデータベース設定を見る。
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=
DB_HOST、DB_PORTは通常そのままでよい。
もし何かの都合でポートを変えて運用しているPCならポートを書き換える。
DB_DATABASEはこのプロジェクト用にxampp同封のphpmyadminで新規作成してその名前に差し替える。
私はcrmというデータベースを作成したのでこのようになる。
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=crm
DB_USERNAME=root
DB_PASSWORD=
ここで、xamppからapacheとmysqlを起動し、ブラウザで次のURLを打ち込む。
http://127.0.0.1/プロジェクトのフォルダ名/public/
そうするとlaravel8のルート画面が出てくるのでまずはこれで良しとする。
認証の実装
認証に使うテーブルは最初にインストール済みのマイグレーションファイルから生成できる。
cd xamppをインストールしたフォルダ\htdocs\プロジェクトのフォルダ名
php artisan migrate
と入力すればマイグレーションファイルからテーブルが生成される。
そのまま
composer require laravel/breeze --dev
php artisan breeze:install
npm install
npm run dev
php artisan migrate
を実行する。
phpstorm等のIDEに入っているコマンドラインパネルで実行するとphp artisan breeze:install以降のコマンド入力は自動的に行ってくれる。便利。
検証
認証アカウントの登録をしたい場合はブラウザで
http://127.0.0.1/プロジェクトのフォルダ名/public/register
登録したアカウントでログインしたい場合はブラウザで
http://127.0.0.1/プロジェクトのフォルダ名/public/login
を参照すればOK
後は公式ドキュメントに沿って必要なコントローラーとアクションに認証をかければOK。
微調整
詳細はこちらの記事を参照。
xamppをインストールしたフォルダ\htdocs\プロジェクトのフォルダ名\resources/views/layouts/app.blade.php
の記述が間違っているので書き換える。
//コメントアウト
{{-- @vite(['resources/css/app.css', 'resources/js/app.js'])--}}
//代わりに次の2行追加
<link rel="stylesheet" href="{{ mix('css/app.css') }}">
<script src="{{ mix('js/app.js') }}" defer></script>
xamppをインストールしたフォルダ\htdocs\プロジェクトのフォルダ名\resources/views/layouts/guest.blade.php
の記述が間違っているので書き換える。
//コメントアウト
{{-- @vite(['resources/css/app.css', 'resources/js/app.js'])--}}
//2行追加
<link rel="stylesheet" href="{{ mix('css/app.css') }}">
<script src="{{ mix('js/app.js') }}" defer></script
次に以下のコマンドを実行
cd xamppをインストールしたフォルダ\htdocs\プロジェクトのフォルダ名
npm ci
npm run dev
編集後記
laravel10で同じ手順を踏むとnpm run devでこけてしまう事象が発生した。
同様の現象に遭遇した人の記事も散見されたが解決したパターンと解決しなかったパターンとであるので、おま環多発地帯の模様。
(識者の方調査求む)
laravel10は2023年現在ではちょっと様子見したほうがいいっぽい?