問題は複数ありますが、本質的には:
- PHPのPATHが壊れている
- MAMPのPHP実体パスが違う
- pdo_mysql extension が読み込まれていない
- Apache/MAMPのDocumentRootとLaravel配置場所が合っていない
- php artisan serve のポート競合
です。
特にこれ:
'php' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチファイルとして認識されていません。
がかなり重要で、
CLIからPHPが正常認識されていない
状態です。
つまり:
php -m が動く
php -v が動かない
のは、
複数PHP
または:
alias / shell cache / PATH不整合
が起きています。
まず最初に確認
PowerShellで:
where php
実行。
正常なら:
C:\MAMP\bin\php\php8.x.x\php.exe
が出ます。
出ないなら PATH が壊れています。
MAMP の実際のPHP場所確認
まず:
C:\MAMP\bin\php\
をエクスプローラーで開いてください。
あなたは:
php8.2.14
と言っていますが、
指定されたパスが見つかりません
なので、
実際は:
php8.3.1
php8.2.0
php8.1.13
など別バージョンです。
正しいPATH設定
例えば実体が:
C:\MAMP\bin\php\php8.3.1
なら、
環境変数 PATH に:
C:\MAMP\bin\php\php8.3.1
を追加。
追加後:
PowerShellを完全に閉じる
↓
再起動
必須。
確認
その後:
php -v
正常なら:
PHP 8.x.x
が出る。
次に pdo_mysql
php.ini を確認。
まず:
php --ini
を実行。
ここで:
Loaded Configuration File:
が表示されます。
その php.ini を編集。
必須設定
以下をコメント解除。
extension_dir = "ext"
extension=pdo_mysql
extension=mysqli
extension=openssl
extension=mbstring
extension=fileinfo
※ Windowsでは:
;extension=pdo_mysql
先頭の ; を消す。
確認
php -m
で:
pdo_mysql
が出ればOK。
artisan serve が失敗する理由
これ:
Failed to listen on 127.0.0.1:8000
8010
8080
9000
は:
全部ポート使用中
です。
たぶん:
MAMP Apache
MySQL
Docker
Node
WSL
が使ってる。
回避
php artisan serve --port=8888
または:
php artisan serve --host=0.0.0.0 --port=8088
404 の原因
これ:
http://localhost:8888/practice/public
は、
MAMP DocumentRoot が:
htdocs
向いてない可能性。
Laravel の推奨配置
C:\MAMP\htdocs\practice
に置く。
そして:
http://localhost/practice/public
でアクセス。
※ MAMP標準ポートなら:
8888不要
の場合もある。
localhost が機能しない理由
これ:
このページは現在機能していません
は、
Apache起動失敗の可能性。
MAMP画面で:
Apache 緑
MySQL 緑
になってるか確認。
Laravel 最短セットアップ
1
composer create-project laravel/laravel practice
2
cd practice
3
.env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=8889
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=root
※ MAMP の MySQL は通常 8889。
4
php artisan key:generate
5
php artisan migrate
最終的に見るべきURL
MAMP経由:
http://localhost/practice/public
artisan:
http://127.0.0.1:8888
今回の核心
あなたの最大問題は:
php コマンドの実体が壊れている
ことです。
これが直らない限り:
pdo_mysql
artisan
composer
Laravel
全部不安定になります。
最終結論
まずこの順番で直してください。
- where php
- 正しいMAMP PHPパス確認
- PATH修正
- PowerShell再起動
- php -v
- php --ini
- php.ini修正
- php -m で pdo_mysql確認
- php artisan serve --port=8888
ここまで通れば Laravel は動きます。