まえがき
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
を起動するたび追加されます。どなたか、これらを無くす方法がおわかりの方、ヘルプミー!