今更ながら VPS を上位プランへ移行してて、
ついでに phpenv で php5.4.25 インストールしようとしたら
以下のエラー。
[7686]# phpenv install 5.4.25 [Info]: Loaded apc Plugin. [Info]: Loaded pyrus Plugin. [Info]: Loaded xdebug Plugin. [Info]: Loaded xhprof Plugin. [Info]: php.ini-production gets used as php.ini [Info]: Building 5.4.25 into /opt/phpenv/versions/5.4.25 [Downloading]: http://php.net/distributions/php-5.4.25.tar.bz2 [Preparing]: /tmp/php-build/source/5.4.25 [Compiling]: /tmp/php-build/source/5.4.25 ----------------- | BUILD ERROR | ----------------- Here are the last 10 lines from the log: ----------------------------------------- /tmp/php-build/source/5.4.25/ext/iconv/iconv.c:2636: undefined reference to `libiconv' /tmp/php-build/source/5.4.25/ext/iconv/iconv.c:2558: undefined reference to `libiconv' ext/iconv/.libs/iconv.o: In function `php_iconv_stream_filter_ctor': /tmp/php-build/source/5.4.25/ext/iconv/iconv.c:2512: undefined reference to `libiconv_open' ext/xmlrpc/libxmlrpc/.libs/encodings.o: In function `convert': /tmp/php-build/source/5.4.25/ext/xmlrpc/libxmlrpc/encodings.c:73: undefined reference to `libiconv_open' /tmp/php-build/source/5.4.25/ext/xmlrpc/libxmlrpc/encodings.c:81: undefined reference to `libiconv' /tmp/php-build/source/5.4.25/ext/xmlrpc/libxmlrpc/encodings.c:101: undefined reference to `libiconv_close' collect2: ld returned 1 exit status make: *** [sapi/cli/php] エラー 1
な感じで、iconv 周りでエラー。
http://ftp.gnu.org/pub/gnu/libiconv/ と http://www2d.biglobe.ne.jp/~msyk/software/libiconv-patch.html から適当にダウンロードして make && make install して終わり。
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.tar.gz wget http://www2d.biglobe.ne.jp/~msyk/software/libiconv/libiconv-1.13-ja-1.patch.gz tar zxvf libiconv-1.13.tar.gz cd ./libiconv-1.13.tar.gz gzip -dc ../libiconv-1.13-ja-1.patch.gz | patch -p1 make make install
これで問題なし。
と思ったんだが、エラー。ここから以外とハマった。
なんか色々試して、結局何が有効な対応だったのかよくわからん。
試したものは以下。
ref.
- PHPのインストールでエラー
- https://github.com/c9s/phpbrew/wiki/TroubleShooting
- [2010-08-16 12:29 UTC] parsadev at yahoo dot com
--with-iconv ⇛ --with-iconv=shared,/usr/local
ln -s /usr/local/lib/libiconv.so.2.5.0 /usr/local/lib64/libiconv.so ln -s /usr/local/lib/libiconv.so.2.5.0 /usr/local/lib64/libiconv.so.2
以下は試してみたが、上手く行かなかったので破棄。
ref. macにphpenv,php-build,apacheで開発環境を構築したのでメモ – ロックとチュウーハイとこりんがるな日々
cd /tmp/php-build/source/5.4.25/ext/iconv/ cp iconv.c iconv.c.bak vim iconv.c :%s/iconv_open/libiconv_open/g :%s/iconv_close/libiconv_close/g
他にも色々試したが、configu か build 時に lib64 を見に行ってるのに、libiconv がないってことなのか
正道はどうすりゃいいのか結局よくわからん。