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通信も問題なしです。