#はじめに
Windowsサーバーで laravelを動かすときに、apacheのログファイル(C:\Apache24\logs配下
)に警告が出たため、その対処法をまとめます。
#環境
- windows server 2022
- apache:2.4.51
- php:8.1.0
- composer: 2.1.14
- laravel 8.7
#エラー内容
PHP Warning: PHP Startup: Unable to load dynamic library 'curl' (tried: c:\\php8\\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), c:\\php8\\ext\\php_curl.dll(\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)) in Unknown on line 0
ダイナミックライブラリのcurl
を読み込めませんと出ていますね。
エラー内容のc:\\php8\\ext\\curl
とc:\\php8\\ext\\php_curl.dll
が読み込まれていないということで、PATHが異なる可能性があります。
#対処法
まず、php.iniを修正します。
;extension=php_curl.dll
↓
extension=php_curl.dll
次に、php_curl.dll
とlibssh2.dll
を移動させます。
##php_curl.dllを移動
C:\php8\ext
配下のphp_curl.dll
を Windows\system32
配下に移動
##libssh2.dllを移動
C:\php8
配下のlibssh2.dll
を Windows\system32
に移動
場合によっては、上記に加えて、
libssh2.dll
を C:\Apache24\bin
にコピーするとよい場合もあります。
#dllファイルとは
ちなみにdll
とは、Windowsのプログラムファイルの種類の一つで、プログラムを動かすときに合体させる、プログラムの部品ファイルのことです。
dll
単体は、それ自体は単体で実行することはできず、実行可能ファイル(exeファイル
など)が起動する際に自動的に連結されてメモリ上に展開されます。