【PHP】cURLをインストールして有効化する手順

PHPのソースインストール時にcURLを有効化する手順のご紹介です。

気をつけるポイント

CentOS 6以降では、RPM版のcURLだとSSL通信にOpenSSLではなくNSS APIを利用するようになっているので役に立ちません。

そこで、OpenSSLとcURLを別途ソースから個別にインストールする(下記で手順紹介)ことをおすすめします。

OpenSSLをソースからインストールする

まずはOpenSSLをソースからインストールします。

$ cd /usr/local/src/
$ wget ftp://ftp.openssl.org/source/openssl-0.9.8zd.tar.gz
$ tar -xzf openssl-0.9.8zd.tar.gz
$ cd openssl-0.9.8zd
$ ./config --prefix=/usr/local/openssl shared zlib
$ make
$ make install

これでOpenSSLが指定したディレクトリにインストールされました。

cURLをソースからインストールする

続いて、先ほどインストールしたOpenSSLをSSL通信の方法に指定する形でcURLをソースからインストールします。

$ yum install libssh2-devel
$ cd /usr/local/src/
$ wget http://curl.haxx.se/download/curl-7.45.0.tar.gz
$ tar -xzf curl-7.45.0.tar.gz
$ cd curl-7.45.0
$ ./configure --prefix=/usr/local --with-ssl=/usr/local/openssl --with-libssh2

これでcURLが指定したディレクトリにインストールされました。

PHPをインストールする

最後にPHPをインストールします。
下記オプションを configure に追加してください。

–with-openssl=/usr/local/openssl \
–with-kerberos \
–with-curl=/usr/local/lib \
–with-curlwrappers

あとは make して make install で完了です。

cURLを試してみる

無事に cURL が追加されたかどうか確認するために動作確認してみます。

$ php -i | grep cURL
cURL support => enabled
cURL Information => libcurl/7.45.0 OpenSSL/0.9.8zd zlib/1.2.3 libssh2/1.4.2

ここが NSS ではなく OpenSSL となっていればOK。

今回も無事に組み込まれているようですが、更に下記のプログラムを実行してみます。

<?php
$ch = curl_init("https://www.google.co.jp/");
$fp = fopen("google.txt", "w");
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch); curl_close($ch);
fclose($fp);
?>

無事にgoogle.txtが作成されていて内容が作成されていればインストール完了です。
HTTPSで取得もしているのでSSL通信も問題なしです。

コメントを残す

メールアドレスが公開されることはありません。