まえがき
xampp で表題のエラーが出ていたので、それを修正するためのメモです。
私の環境
- Windows 10 Home(22H2)
-
Dドライブ直下にxamppをインストールしています(D:\xampp)。
1. エラーの内容
以前に書いた記事
「更新が止まった(?)XAMPPに新バージョンのPHPを導入する」
で追加導入したPHP8.3.10は見た目はちゃんと動いたのですが、
apacheのerror.log(D:\xampp\apache\logs\error.log)に、apacheを起動するたび、以下のような9行のエラーが記録されていました。
[Sun Sep 08 17:52:10.100260 2024] [core:warn] [pid 4956:tid 696] AH00098: pid file D:/xampp/apache/logs/httpd.pid overwritten -- Unclean shutdown of previous Apache run?
PHP Warning: PHP Startup: Unable to load dynamic library 'curl' (tried: ext\\curl (\xe6\x8c\x87\xe5\xae\x9a\xe3\x81\x95\xe3\x82\x8c\xe3\x81\x9f\xe3\x83\xa2\xe3\x82\xb8\xe3\x83\xa5\xe3\x83\xbc\xe3\x83\xab\xe3\x81\x8c\xe8\xa6\x8b\xe3\x81\xa4\xe3\x81\x8b\xe3\x82\x8a\xe3\x81\xbe\xe3\x81\x9b\xe3\x82\x93\xe3\x80\x82), ext\\php_curl.dll (\xe6\x8c\x87\xe5\xae\x9a\xe3\x81\x95\xe3\x82\x8c\xe3\x81\x9f\xe3\x83\x97\xe3\x83\xad\xe3\x82\xb7\xe3\x83\xbc\xe3\x82\xb8\xe3\x83\xa3\xe3\x81\x8c\xe8\xa6\x8b\xe3\x81\xa4\xe3\x81\x8b\xe3\x82\x8a\xe3\x81\xbe\xe3\x81\x9b\xe3\x82\x93\xe3\x80\x82)) in Unknown on line 0
[Sun Sep 08 17:52:10.153634 2024] [mpm_winnt:notice] [pid 4956:tid 696] AH00455: Apache/2.4.46 (Win64) OpenSSL/1.1.1h PHP/8.3.10 configured -- resuming normal operations
[Sun Sep 08 17:52:10.153634 2024] [mpm_winnt:notice] [pid 4956:tid 696] AH00456: Apache Lounge VS16 Server built: Oct 2 2020 11:45:39
[Sun Sep 08 17:52:10.153634 2024] [core:notice] [pid 4956:tid 696] AH00094: Command line: 'd:\\xampp\\apache\\bin\\httpd.exe -d D:/xampp/apache'
[Sun Sep 08 17:52:10.169262 2024] [mpm_winnt:notice] [pid 4956:tid 696] AH00418: Parent: Created child process 4192
PHP Warning: PHP Startup: Unable to load dynamic library 'curl' (tried: ext\\curl (\xe6\x8c\x87\xe5\xae\x9a\xe3\x81\x95\xe3\x82\x8c\xe3\x81\x9f\xe3\x83\xa2\xe3\x82\xb8\xe3\x83\xa5\xe3\x83\xbc\xe3\x83\xab\xe3\x81\x8c\xe8\xa6\x8b\xe3\x81\xa4\xe3\x81\x8b\xe3\x82\x8a\xe3\x81\xbe\xe3\x81\x9b\xe3\x82\x93\xe3\x80\x82), ext\\php_curl.dll (\xe6\x8c\x87\xe5\xae\x9a\xe3\x81\x95\xe3\x82\x8c\xe3\x81\x9f\xe3\x83\x97\xe3\x83\xad\xe3\x82\xb7\xe3\x83\xbc\xe3\x82\xb8\xe3\x83\xa3\xe3\x81\x8c\xe8\xa6\x8b\xe3\x81\xa4\xe3\x81\x8b\xe3\x82\x8a\xe3\x81\xbe\xe3\x81\x9b\xe3\x82\x93\xe3\x80\x82)) in Unknown on line 0
[Sun Sep 08 17:52:10.817547 2024] [mpm_winnt:notice] [pid 4192:tid 728] AH00354: Child: Starting 150 worker threads.
[Sun Sep 08 17:52:30.086453 2024] [mpm_winnt:crit] [pid 4192:tid 728] AH02538: Child: Parent process exited abruptly. Child process is ending
2行目と7行目には全く同じエラーメッセージが書かれており、\x...の部分を含めてPHP(echo '...';)で表示させると、次のような内容でした。
PHP Warning: PHP Startup: Unable to load dynamic library 'curl' (tried: ext\curl (指定されたモジュールが見つかりません。), ext\php_curl.dll (指定されたプロシージャが見つかりません。)) in Unknown on line 0
このエラーメッセージは、xampp8.2.12の頃から出ていたようです。
(追加)
私の環境では、xampp8.0の頃からPHPのバージョン切り替えをしていました。
一方、最新版のxampp8.2.12を直接インストールした方は、2・7行目と同様のエラーは出ていなかったと思われます。
現に、私もこの後xampp8.2.12をインストールし直してみたところ、2・7行目と同様のエラーは出ませんでした。(ただし、2・7行目以外のエラーは改善が見られませんでした。)
2. 修正できなかった(ネット上の)対応策
Web で情報を探した結果、以下のような対応策が見つかりましたが、いずれも表題のエラーの修正にはつながりませんでした。
-
php.ini中、extension=curlをコメントアウトする。 -
D:\xampp\php\extをWindowsの環境変数に登録する。 -
php_curl.dll(など)を他のフォルダへコピーする。 -
php.ini中、extension_dir = "ext"を設定する。(→ すでに設定ずみ)
これらのいずれも、解決には至りませんでした。
3. 解決策
結論から言うと、以下の手順のように(Apache を更新)すると、表題のエラーは解決できました。
-
Apacheダウンロードページから、最新の
Apache(httpd-2.4.62-240904-win64-VS17.zip)をダウンロード。 - ダウンロードした
zipファイルを展開(httpd-2.4.62-240904-win64-VS17フォルダが作られる)。 -
XAMPP Control PanelからApacheを停止(Stop)。 - これまでの
Apache(D:\xampp\apache)をApache.bakにリネーム(D:\xampp\apache.bak)。 - 上記 2 でできた
httpd-2.4.62-240904-win64-VS17フォルダ直下にある、Apache24フォルダをD:\xamppフォルダ直下に移動(又はコピー)(→D:\xampp\Apache24)。 - 上記 5 のフォルダ名を
apacheにリネーム(D:\xampp\apache) -
D:\xampp\apache\confフォルダをconf.originalにリネーム(D:\xampp\apache\conf.original)。 -
D:\xampp\apache.bak\confフォルダを、D:\xampp\apacheフォルダにコピー(D:\xampp\apache\conf)。
4. 結果
その後のエラーログは、以下のようになりました。
(PHP Warning の行は無くなりました。)
[Sun Sep 08 19:28:50.390398 2024] [core:warn] [pid 4140:tid 448] AH00098: pid file D:/xampp/apache/logs/httpd.pid overwritten -- Unclean shutdown of previous Apache run?
[Sun Sep 08 19:28:50.447332 2024] [mpm_winnt:notice] [pid 4140:tid 448] AH00455: Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.3.10 configured -- resuming normal operations
[Sun Sep 08 19:28:50.447332 2024] [mpm_winnt:notice] [pid 4140:tid 448] AH00456: Apache Lounge VS17 Server built: Sep 4 2024 10:31:52
[Sun Sep 08 19:28:50.447332 2024] [core:notice] [pid 4140:tid 448] AH00094: Command line: 'd:\\xampp\\apache\\bin\\httpd.exe -d D:/xampp/apache'
[Sun Sep 08 19:28:50.447332 2024] [mpm_winnt:notice] [pid 4140:tid 448] AH00418: Parent: Created child process 7404
[Sun Sep 08 19:28:51.080337 2024] [mpm_winnt:notice] [pid 7404:tid 444] AH00354: Child: Starting 150 worker threads.
それでもまだ、これら6行のエラーメッセージが、Apacheを起動するたび追加されます。どなたか、これらを無くす方法がおわかりの方、ヘルプミー!