XAMPPでインストールディレクトリ名を変えていた場合PHP7→PHP8を追加。

ものすごくどハマリしたのでメモ。

基本的なやり方はこれ。
【簡単】XAMPP+Windows環境でPHPのバージョンを切り替えて使う

だがしかし今回はapacheが起動しないという罠にハマった。

PHP Warning:  Cannot open "\\xampp\\php\\extras\\browscap.ini" for reading in Unknown on line 0

インストールディレクトリを「xampp2」にしている

前提としてインストールディレクトリを「xampp2」にしている。

PHP8.2.4ダウンロード

まずはPHP8のダウンロード。
https://sourceforge.net/projects/xampp/files/
64bit版で問題ないです。

ダウンロードしたらいつものように
【簡単】XAMPP+Windows環境でPHPのバージョンを切り替えて使う
PHP824ディレクトリなんかを作っていざ起動と思ったら出来ない。

Error: Apache shutdown unexpectedly.
This may be due to a blocked port, missing dependencies, 
improper privileges, a crash, or a shutdown by another method.
Press the Logs button to view error logs and check
the Windows Event Viewer for more clues
If you need more help, copy and post this
entire log window on the forums

と言ってもポートが被っているというわけではない。先に入れておいたPHP7の方は起動できる。

エラー内容

PHP Warning:  PHP Startup: Unable to load dynamic library 'bz2' (tried: \xampp\php\ext\bz2 (指定されたモジュールが見つかりません。), \xampp\php\ext\php_bz2.dll (指定されたモジュールが見つかりません。)) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'curl' (tried: \xampp\php\ext\curl (指定されたモジュールが見つかりません。), \xampp\php\ext\php_curl.dll (指定されたモジュールが見つかりません。)) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'fileinfo' (tried: \xampp\php\ext\fileinfo (指定されたモジュールが見つかりません。), \xampp\php\ext\php_fileinfo.dll (指定されたモジュールが見つかりません。)) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'gettext' (tried: \xampp\php\ext\gettext (指定されたモジュールが見つかりません。), \xampp\php\ext\php_gettext.dll (指定されたモジュールが見つかりません。)) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'mbstring' (tried: \xampp\php\ext\mbstring (指定されたモジュールが見つかりません。), \xampp\php\ext\php_mbstring.dll (指定されたモジュールが見つかりません。)) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'exif' (tried: \xampp\php\ext\exif (指定されたモジュールが見つかりません。), \xampp\php\ext\php_exif.dll (指定されたモジュールが見つかりません。)) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'mysqli' (tried: \xampp\php\ext\mysqli (指定されたモジュールが見つかりません。), \xampp\php\ext\php_mysqli.dll (指定されたモジュールが見つかりません。)) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'pdo_mysql' (tried: \xampp\php\ext\pdo_mysql (指定されたモジュールが見つかりません。), \xampp\php\ext\php_pdo_mysql.dll (指定されたモジュールが見つかりません。)) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'pdo_sqlite' (tried: \xampp\php\ext\pdo_sqlite (指定されたモジュールが見つかりません。), \xampp\php\ext\php_pdo_sqlite.dll (指定されたモジュールが見つかりません。)) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'php_openssl.dll' (tried: \xampp\php\ext\php_openssl.dll (指定されたモジュールが見つかりません。), \xampp\php\ext\php_php_openssl.dll.dll (指定されたモジュールが見つかりません。)) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'php_ftp.dll' (tried: \xampp\php\ext\php_ftp.dll (指定されたモジュールが見つかりません。), \xampp\php\ext\php_php_ftp.dll.dll (指定されたモジュールが見つかりません。)) in Unknown on line 0
PHP Warning:  Cannot open "\xampp\php\extras\browscap.ini" for reading in Unknown on line 0
PHP Fatal error:  Unable to start standard module in Unknown on line 0

ログを見るとだいたいこんな感じのエラーが出ている。
具体的にはbzが読めないとかそういうやつ。

解決策

基本的にphp.iniのファイルの指定が間違っていた。

新しく入れたPHP8の方の

例)

error_log="\xampp\php\logs\php_error_log"

error_log="C:\xampp2\php\logs\php_error_log"

パスが間違っていたので該当箇所複数直しておいた。

[browscap]も直す。

phpMyAdminもエラーだらけだったので入れ替えておいた。

XAMPP

Posted by bistro