ちょっとした案件で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と表示しました。
もしエラーで起動しない場合、ほとんどはファイルが足りないか、ファイル内のディレクトリ名が違うかなので、工程を丁寧に処理していけば大丈夫かと思います。