[FYI] PHP 4.4.4 + cURL トラブル


自分用メモ。
FreeBSD 6.2 では、ports で cURL を導入すると、curl-7.16.0.tar.bz2 がダウンロードされます。つまり、7.16.0 というバージョンです。
これを PHP 4.4.4 で利用しようとして、–with-curl オプションを付けると、以下のようなエラーが表示されてコンパイルが停止します。(./configure は問題なく通る)

/bin/sh /usr/local/src/php-4.4.4/libtool –silent –preserve-dup-deps –mode=compile gcc -Iext/curl/ -I/usr/local/src/php-4.4.4/ext/curl/ -DPHP_ATOM_INC -I/usr/local/src/php-4.4.4/include -I/usr/local/src/php-4.4.4/main -I/usr/local/src/php- 4.4.4 -I/usr/local/include -I/usr/local/src/php-4.4.4/ext/xml/expat -I/usr/local/src/php-4.4.4/TSRM -I/usr/local/src/php-4.4.4/Zend -g -O2 -prefer-non-pic -c /usr/local/src/php-4.4.4/ext/curl/curl.c -o ext/curl/curl.lo
/usr/local/src/php-4.4.4/ext/curl/curl.c: In function `zm_startup_curl’:
/usr/local/src/php-4.4.4/ext/curl/curl .c:261: error: `CURLOPT_FTPASCII’ undeclared (first use in this function)
/usr/local/src/php-4.4.4/ext/curl/curl.c:261: error: (Each undeclared identifier is reported only once
/usr/local/src/php-4.4.4/ext/curl/curl.c:261: error: for each function it appears in.)
/usr/local/src/php-4.4.4/ext/curl/curl.c:299: error: `CURLOPT_PASSWDFUNCTION’ undeclared (first use in this function)
make: *** [ext/curl/curl.lo] Error 1

調べてみると、php 4.4.4 で利用しているcURLのコードの一部が 7.16.0 では無くなってしまったために起こるエラーだそうです。

解決方法は至って簡単。
http://curl.haxx.se/download/ より、curl-7.15.5.tar.gz をダウンロードし、コンパイル・インストールしてあげれば、phpのコンパイルもさくっと通ります。
ただ、portsで入れたcURLは先に削除してあげる必要があるので、注意してください。

コメントを残す

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