php8.3にしたら、curl_init()が使えなくなっていた。
まずはcurlの拡張モジュールが必要なのでインストール
windowsの場合、上からダウンロードする。ほかのモジュールでは違うので、注意。
ダウンロードしたzipファイルを展開して、program filesとかの下に置く。(どこでもいい)
環境変数でシステムパスを通す。
この時点で本来なら使えるはずだが、Apacheのエラーログで読み込めないとのこと。
PHP Warning: PHP Startup: Unable to load dynamic library 'curl' (tried: C:/php/ext\\curl
extension=curlはコメントアウトしてない。php_curl.dllはextension_dirで指定したフォルダの中にある。
この時点ですでに分からなくなった。
AIに聞くと、
Claude
とのことなので、libcryptoもあるので、PHPのパスを確認すると、システム側にパスを通してなかった。ので追加。
これで、Apacheの再起動を行ったが、まだエラーが出ていたのでPCを再起動すると、Apacheでcurlを読み込めた。
確認点としては、
- PHPのパスを通す
- extension_dirには絶対パス
- extension=curlのコメントアウト外す(デフォでは外れてるはず)
- curlの拡張モジュールをインストール
- curl.exeのパスを通す
- Apacheの再起動
- PCの再起動も試す
- OSが古い場合のバージョンの互換性を確認する。ほとんど問題にならないと思うが、ダウンロードするモジュールのバージョンやPHPのバージョンなどは最新のものにして、それがOSで使えるかどうか。