私のウェブサイト (PHP - CodeIgniter アプリケーション) をホストするように構成された Digitalocean LEMP アプリケーション ドロップレットがあり、アプリケーションで Nexmo SMS API を使用しており、今日まですべてがうまく機能していました。突然、SMS を送信しようとすると、「ホストを解決できませんでした: rest.nexmo.com」というエラーが表示されます。cURLが機能していないように見えますが、インストールされているかどうかを確認すると、インストールされており、phpinfoにも表示されます。nginx、php5-fpmを再起動し、コードでいくつかの異なるcurl設定を試しましたが、常にこのエラーが発生しました。
次のような単純なスクリプトを実行しようとしたとき:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.google.com/');
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_HEADERFUNCTION, 'read_header');
curl_setopt($ch, CURLOPT_WRITEFUNCTION, 'read_body');
curl_exec($ch);
if ($error = curl_error($ch)) {
echo "Error: $error<br />\n";
}
function read_header($ch, $string)
{
$length = strlen($string);
echo "Received $length bytes<br />\n";
return $length;
}
結果はまだ「エラー: ホストを解決できませんでした: www.google.com」なので、問題はアプリケーション コードではなく cURL にあると思います (NEXMO CodeIgniter ライブラリを使用しています)。
私は頭に浮かぶすべてを試しましたが、今ではアイデアが不足しているので、すべての助けに感謝します. 私が見逃しているnginxでcURLを接続/動作させるために特別な設定/やるべきことはありますか? 多分nginx.confファイルの何か、またはいくつかのポートを開く必要がありますか?