エックスサーバーでcurl-impersonate

エックスサーバーで動くPHPプログラムからCloudflare利用サイトにアクセスできないことがあったので、curl-impersonate というのを使ってみる。

ダウンロード

$ wget https://github.com/lwthiker/curl-impersonate/releases/download/v0.6.1/curl-impersonate-v0.6.1.x86_64-linux-gnu.tar.gz

展開

$ tar xzf curl-impersonate-v0.6.1.x86_64-linux-gnu.tar.gz

実行

$ ./curl_chrome116 {サイトURL} --cacert /etc/ssl/certs/ca-bundle.crt

動いた。

ただ、特定のサイトで「400 Bad Request」になってしまうことがある。
素のcurlコマンドなら問題ないのにどうして・・

curl_chrome116 ファイルの中に書いてある--http2のオプションを削除したら問題なくなった。

原因はよくわからないが古いNginxが発生条件かもしれない? まあいいか。

PHPからは外部curlコマンドの代替として使える。