Laravel 9を使いたかったので、php8にバージョンアップすることにした。
windowsにて、php7.4からphp8系へバージョンアップをしようとしたとき、
Apacheでエラーが出て起動できなかったので、エラーの解決方法などを記録。
php8をインストール
以下を参考にインストール。
phpでもphp8のコマンドでも動くようにした。
参考
https://zenn.dev/book000/articles/install_php8-0-0_windows10
phpのサイトからダウンロードする。これをどこでもいいのでファイルを展開しておく。もともとphpの置いてあるフォルダと同階層がいい。
そこまでのパスを通す。もともとphpのパスが通っていると思うので、フォルダ名を変えるだけでいい。
php.iniをコピペする
インストールすれば動くが、それだけではダメだ
info.phpはphpのパスになっているので、php7.4で表示されている。
さらに、composerからLaravel9をインストールしようとしたが、
composerのphp参照パスが、7の方になっているため、インストールできなかった。
これは直さなきゃいけないと思い、フォルダ名を変更した。
素直に、phpだけにしておけばよかった。
Apacheを再起動するが、エラーが出る
Error: Apache shutdown unexpectedly.
This may be due to a blocked port, missing dependencies
ポートがブロックされたため、シャットダウンされた。
色々調べて試したが、うまくいかなかった。。。
以下やった事。
とりあえずパスなどを確認する
php8としていたフォルダをphpに変更、
php8.exeとしていたので、php.exeに変更。
ポートが被っているので変更
参考
https://utano.jp/entry/2016/09/windows-xampp-apache-not-start/
上記を参考に、httpd.confとhttpd-ssl.confを変更する。
xamppを使っているので、httpd.confは共通のはずだし、Netstatを見ても、
同じポート番号を使っているようには見えない。80は見当たらない。
とりあえず変更する。
httpd.confで、ポート番号とサーバーネームの部分を変える。
80を8080に変更。
この場合接続するときは、
localhost:8080 としないと繋がらない。
結論から言うと、これも必要なかった。。。
このポート変更を行ったら、MySQLのポートも変更しないといけない。
xamppの右上のconfigからservice and Port Settingsでポートを変更する必要がある。
httpd-ssl.confで、example.comをlocalhostに変更
参考サイトでは443から4433に変更しているが、自分はしなかった。
しかし、まだエラーになる。
httpd-xampp.confも変更する
Apacheだけのエラーなら、上記で解決していると思われるが、
まだエラーが出ているため、調べた結果以下を見つけた。
とりあえず、httpd-xampp.confの中を見ると、
読み込みモジュールがphp7のままだったので、7の部分を一通り8に変更した。
しかし、まだエラーが出る。そして以下を見つけた。
参考
https://teratail.com/questions/323199
LoadModule php_module “C~
となっている。?
php8_moduleとしていたので、この部分を直すと、Apacheが動いた!
この時点で、phpinfo.phpを確認する。
Loaded Configuration File の部分に php.iniのパスがちゃんと表示されているか?
これが表示されていなければ、拡張機能も読み込めていない。
これで、PDO,MySql,MySqliの項目が表示されていればいい。
調べると以下が参考になった。
参考
https://qiita.com/rana_kualu/items/97db65f8741280331202
確かに、xamppを一旦削除して、新しくxamppからphpをインストールすればよかったかもしれないが、
virtualhostやら色々httpd.confを変更していたので、それは面倒に思えた。。。
phpをインストールするだけでは、設定は終わりではないということがわかった。
このあと、拡張機能の必要な部分だけ写して、php.iniに追記した。
特にxdebugやsqlserverのモジュールは、ダウンロードし直す必要がある。
php –versionとして、エラーが出ないことを確認してようやく完了。
vscodeはきちんと終了して、再起動する。
そうしないとターミナルで、phpコマンドが認識されなくなる。
composer create-project “laravel/laravel=9.*” project名
こうすればバージョン指定して、プロジェクトを作れる
これでようやくlaravel 9をインストールできた。