🐈
PHPのバージョンを更新したい!with.XAMPP
やりたいこと
ローカルのPHPを、8.1→8.3にアップデートしたい!
なぜ?
だって、Laravel11を使うには、8.2以上が必要だから!
やってみよう!
参考にした記事
- https://qiita.com/maruyama42/items/2a6af783cf400cbcc216
- http://hiroses.seesaa.net/article/465389919.html
PHPの最新バージョンをダウンロード
PHPのホームページでダウンロード&解凍する。
このとき、同じPHPバージョンでも似たようなのがいくつかあるが、
「Non Thread Safe」 or 「Thread Safe」
→ 「Non Thread Safe」でよいっぽい。
「x64 or x86」
→x86にすると、のちにApacheが起動できなかったため、x64にした。
ダウンロードしたphpをxampp内に配置
もともと使っていたxamppディレクトリ内の、phpディレクトリのを、コピーして退避しておく。
(後で古いphp.iniを使うから & ミスったときに備えて)
phpディレクトリ内を、↑で解凍したものに差し替える。
php.ini
↑で解凍した中に、php.iniがないはず。
なので、先ほど、コピーしておいた古いphpディレクトリ内のphp.iniを、新しいphpディレクトリにコピーしていれる。
起動確認
- php -vで、phpが8.3になっている。
- xamppで、apacheと、mysqlが起動できる。
- php artisan serveでlaravelが起動できる。
ことが確認できたらOK。
修正
しかし、
xamppで、apacheと、mysqlが起動できる。
において、apacheを起動すると、起動中にはなるものの、
プロシージャエントリポイント
SSL_CTX_set_post_handshake_authがダイナミンクリンクライブラリ c:\xampp\php\ext\php_curl.dllから見つかりませんでした。
のようなエラーが出た。
そこで、
下記の2つを、php→apacheのbinにコピー(上書き)した。
libssh2.dll
nghttp2.dll
そうしたところ上手くいった。
libcrypto-1_1-x64.dll
libssl-1_1-x64.dll
は、自分の場合、php内にあるのが、
libcrypto-3-x64.dll
libssl-3-x64.dll
だったが、これはapache/binにコピーしなくてもできた。
備考
今回は、8.1→8.3の更新で、8のままだったので、不要だったが、
7→8のような更新をする場合は、
xampp\apache\conf\extra\httpd-xampp.conf
を書き換える必要もある模様。
下記を参考に。
Discussion