php8へバージョンアップ windows Apacheでエラー出たとき

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をインストールできた。