Windows版 XAMPP-Liteでphp8.3、php8.4のWebサーバー環境を構築する

契約サーバーからPHPの推奨バージョンを「PHP 8.3」に変更するとの連絡がきました。自分のローカル環境は8.2なので、これはいかんと思いxamppのphp8.3t対応のものを探そうとしたのですが、Windows版のXAMPPは2023年11月にVer.8.2.12が公開されてから新しいバージョンは公開されていません。

すでに、php8.4.XXは公開されており、php8.5.0 Alpha 4も公開されているのに、php8.3XXが公開されていないのはどうしたことでしょう。開発がストップしたのか、それともなにか方針が変わったのか分かりませんが、これは困ったことになったと落胆しておりました。が、もしかしてインストール不要のポータブル版ならあるのかもしれないと探してみると…ありました。

というわけで、php8.3版のものをダウンロードしてウェブサーバー環境を構築してみました。

ファイルのダウンロード

ダウンロードのページから自分の環境にあったファイルをダウンロードします。かなりの数のファイルがあります。

https://sourceforge.net/projects/xampplite

XAMPP-Liteのページにアクセスします

See All Activityをクリックして全ファイルのページへ

XAMPP-Liteのページにアクセスし、トップから少し下にある「Project Activity 」のすべてを表示するページ(See All Activityをクリック)に移動します。

多くのファイルが列挙されています

目的のファイルをダウンロードする

インストール版とポータブル版

XAMPP-Liteにはインストール版とポータブル版があります。インストール版はその名の通りインストールしたマシンでのみ使用できますが、ポータブル版はいろいろなストレージにインストール(というよりコピー?)して使うことが可能で、システム・データごと移動・コピーすることができるので便利です。今回はポータブル版をダウンロードしました。

すぐにphp8.4への移行も必要になってくるので、今回は公開されている新しいバージョンのPHP8.3、PHP8.4版の両方ダウンロードして使えるようにしてみました。

ファイル名からダウンロードするファイルを決定する

上記ページには多くのファイルが記載されています。どれをダウンロードするか分かりづらいですが、ファイル名から目的のファイルを探します。

以下のファイルを例にしてみてみます。

XAMPP-Lite released /8.3/8.3.20/x64/php-man-ja/XAMPP-Lite-8.3.20.1-x64-php-man-ja-Setup.exe
XAMPP-Lite released /8.3/8.3.20/x64/php-man-ja/XAMPP-Lite-8.3.20.1-x64-php-man-ja-portable.7z
XAMPP-Lite released /8.3/8.3.20/x64/php-man-ja/XAMPP-Lite-8.3.20.1-x64-php-man-ja-portable.sfx.exe

XAMPP-Lite releasedの後の文字・数値の意味

/8.3  XAMPP-Liteのバージョン

/8.3.20 PHPのバージョン

/x64 CPUのアーキテクチャ 64ビットマシンで使う場合はx64、32ビットマシンの場合はx86を選択します。

/php-man-ja 日本語に翻訳されたPHPのマニュアルを入れる場合はこの記載のあるバージョンを選択。同梱されてないバージョンは/no-php-manになっています。

Setup.exe インストールバージョン

portable.7z インストールしないで使用するポータブルバージョン。7zで圧縮されたファイル。7-Zip(セブンジップ)で解凍します。

portable.sfx.exe インストールしないで使用するポータブルバージョン。自動解凍型なので圧縮解凍ソフト7-Zipは必要ありません。

ちなみにphp8.4の場合は以下のようなファイルになります。

XAMPP-Lite released /8.4/8.4.5/x64/php-man-ja/XAMPP-Lite-8.4.5.1-x64-php-man-ja-Setup.exe
XAMPP-Lite released /8.4/8.4.5/x64/php-man-ja/XAMPP-Lite-8.4.5.1-x64-php-man-ja-portable.sfx.exe
XAMPP-Lite released /8.4/8.4.5/x64/php-man-ja/XAMPP-Lite-8.4.5.1-x64-php-man-ja-portable.7z

ファイルの展開・設置

今回は今後の移行も考え、インストールしないで使用するphp8.3の自動解凍型ポータブル版をダウンロードしました。

ファイルの自動解凍

自動解凍

ダウンロードしたファイル(XAMPP-Lite-8.3.20.1-x64-php-man-ja-portable.sfx.exe)を起動するとどこに解凍するか聞かれるので、適当な場所を指定して解凍します。解凍したファイルを作業するストレージにコピーまたは移動します。自分はCドライブ直下にしました。

自分のマシンのWebサーバー状況

ついでなので、php8.4のポータブルバージョンもCドライブ直下においてみました。現在は、php8.2のインストールバージョン(XAMPP)、php8.3,php8.4のポータブルバージョン(XAMPP-Lite)がCドライブに同居しています。(笑)

フォルダ名を変更してもいいのですが、どのバージョンか分かり易いようにそのままにしてあります。

XAMPP-Liteの起動と終了

起動

xampp_lite_8_3直下の「XL-Control-Panel.x64.exe」をダブルクリックして起動します。

XAMPPの起動

終了

XAMPPを終了するには、念のためApache、MySQLのStopボタンをクリックして終了させ、xボタンをクリックして終了します。Apache、MySQLをストップしないでXAMPPを終了すると不具合(MySQLが起動しなくなる)が起こることがあるという記事を読んだことがあります。

XAMPPの終了

ファイルへのアクセス

localhostへのアクセス

localhostへはhttps://127.0.0.1/ または https://localhost/ でアクセスできます。

localhostへのアクセス

アクセスの警告

セキュリティリスクありの警告が出たら、危険性を承知の上で使用をクリックします。

危険性を承知の上で使用をクリック

ウェブ関連ファイルの設置場所

自分のウェブ関連のファイルは xampp_lite_8_3/www/ 下に置きます。例えばxampp_lite_8_3/www/myweb/test.php なら https://localhost/myweb/test.php でアクセスできます。

MySQLデータの移行

MySQLのデータはフォルダごとMySQLのデータフォルダにコピペするだけで使えるようになります。以前XAMPPではデータベースのデータ移行には苦労した経験があるのですが、XAMPP-Liteでは簡単に終わり、拍子抜けしてしまいました。(笑)

1,XAMPPのMySQLをstopする

2,自分のMySQLデータをフォルダごと xampp_lite_8_3/app/mysql/data 下にコピー&ペーストする。

3,XAMPPのMySQLをstartする

4,https://localhost/phpmyadmin または https://localhost/adminer で確認する

設定

タイムゾーン設定

xampp_lite_8_3/apps/php/にあるphp.iniをエディタで開き、1000行あたりの date.timezone = Asia/Tokyo を追加し、apacheを再起動します。


[Date]
; Defines the default timezone used by the date functions
; https://php.net/date.timezone
;date.timezone = Africa/Tunis
date.timezone = Asia/Tokyo ⇐ 追加します

GDライブラリの設定

Fatal error: Uncaught Error: Call to undefined function exif_imagetype() in C:\xampp_lite_8_3\www\…

とか
Error: Call to undefined function exif_imagetype() in C:\xampp_lite_8_3\www\…

とかのエラーが出る場合、phpのGDライブラリが有効になっていない場合があります。これもphp.iniを編集して上書きし、apacheを再起動します。いずれも「;」をとってコメントアウトをはずします。


944行あたり
;extension=gd
↓
extension=gd

950行あたり
;extension=exif      ; Must be after mbstring as it depends on it
↓
extension=exif      ; Must be after mbstring as it depends on it

1682行あたり
;mbstring.language = Japanese
↓
mbstring.language = Japanese

EnriqueによるPixabayからの画像

PC-Life,PHPxampp

Posted by pman-bros