ちょっとした案件でWebシステムを構築することになったのですが、PHPのバージョンを8.3で行うという話がありました。

今までXAMPPを使用してWebサイト構築の仕事してきましたが、XAMPPは8.2からアップデートされていません。

ということは、まず真っ先に行うべきはPHPのバージョンを8.3以上にすること。

 

ちょっとめんどいw

 

これはXAMPPでなくLAMPなどで独自の開発環境を構築しなければならないのかな?と少々心が折れそうになりつつも、後に業務ではバージョンがPHP8.3以上で行う必要が出るかも知れんと思い、なんとか思いとどまり環境のアップデートから始まりました。

PHPのバージョンが8以上のXAMPPをベースに、PHPを差し替えるという作業を行います。

差し替えるPHPは8.4で挑戦。

今のところはSQLは使用する予定がないので、動かなくなってもしょうがないという条件で。

更新は以下のサイトを参考に進めていきます。情報ありがとうございます!
https://qiita.com/Qiibow/items/2dac78a5579b3912d414

 

XAMPPのインストール

XAMPPのサイトからPHP8以上のアプリをダウンロードしインストールします。

インストール終了後、インストールされたディレクトリに移動し、XAMPPディレクトリをコピペして複製しておき、分かりやすくディレクトリ名をxampp8.4.6にしておきます。

※今回は仮にc:\xampp8.4.6\となるパスにしておきます。

 

PHPのダウンロード

公式サイトからPHP8.4.6の「VS17 x64 Thread Safe 」と付いているブロックからZipになっているものをダウンロードします。

ダウンロードしたら展開し、出来たフォルダの名前を区別できるようphp8_4_6にしておきます。(後にphpフォルダと差し替えます)

c:\xampp8.4.6\の下にあるPHPフォルダと同じ場所に移動します。

 

httpd-xampp.confファイルを編集

c:\xampp8.4.6\apache\conf\extra\httpd-xampp.confファイルを、今いる場所に複製し、httpd-xampp8_4_6.confなど区別できる名前に変更しておきます。

ファイルをテキストエディタで開き、内容に含まれるインストールされた場所を示す\xamppの部分を\xampp8.4.6に置換します。

 

confファイルの内容を編集する

D:\xampp\apache\conf内にあるconfファイルをテキストエディタで開き、先ほどと同じようにパスを変更します。

作業した実際のファイルは以下でした

c:\xampp8.4.6\apache\conf\httpd.conf
c:\xampp8.4.6\apache\conf\extra\httpd-autoindex.conf
c:\xampp8.4.6\apache\conf\extra\httpd-dav.conf
c:\xampp8.4.6\apache\conf\extra\httpd-manual.conf
c:\xampp8.4.6\apache\conf\extra\httpd-multilang-errordoc.conf
c:\xampp8.4.6\apache\conf\extra\httpd-ssl.conf

 

php.iniファイルを編集する

c:\xampp8.4.6\php8_4_6のphp.ini-developmentを複製し、php.iniに名前を変更します。

ファイルを開き、併せてc:\xampp8.4.6\phpの中にあるphp.iniも開き、その内容を参考にしながらphp8_4_6のphp.iniを編集します。

※XAMPPに用意されているphp.iniはカスタムされており、新しいphp.iniはPHPインストール時のデフォルト状態であるため、そのまま適用しても正常に動作しない恐れがあるため、カスタムされたphp.iniに追加されている機能などを追加していく必要がある。

 

足りないファイルをコピーする

c:\xampp\php8_4_6内にc:\xampp\phpから足りないファイルをコピーして追加します。

私がひとまず追加したのはextrasフォルダでした。

 

phpフォルダ入れ替え

xamppに存在していたc:\xampp\phpをリネームもしくは削除し、c:\xampp\php8_4_6をphpに名前を変更します。

c:\xampp8.4.6\apache\conf\extra\httpd-xampp.confを削除し、c:\xampp8.4.6\apache\conf\extra\httpd-xampp8_4_6.confのファイル名をhttpd-xampp.confに変更します。

 

 

これで動くはずと思いましたが、エラーが生じ起動しませんでした。

 

PHP Warning: PHP Startup: Unable to load dynamic library 'intl'

 

エラーログ見てみるとC:\xampp8.4.6\php\ext\php_intl.dllが無いよーってようなことだったらしいので、c:\xampp\php\extから探し、コピペして複製しました。

すると動作し、xamppのshell機能からphp -vと入力すると8.4.6と表示しました。

 

もしエラーで起動しない場合、ほとんどはファイルが足りないか、ファイル内のディレクトリ名が違うかなので、工程を丁寧に処理していけば大丈夫かと思います。