Solaris10のPHP壊れた

きっかけ

sunfrreeware版のgccとlibgccが開発環境に影響を与えたのでこりゃまいったと思って、
7/26によく考えないでインストールしたソフトウェア群をアンインストールしたら、
それに引っ張られてPHPの環境が壊れて、そこに引っ張られてApacheが起動しなくなってしまいました。

原因調査その1

早速PHPのconfigureからやり直したのですが、configureが通らない。
結局libiconvとlibxml2だけあればよかったみたいなので、それを入れ直してconfigureは通過するようになったのですが、
今度はmake installが通らなくなった。止まっている部分を見るとPEARのインストール部分みたいだ。
とりあえずconfigureで--without-pearスイッチをつけてPEARを抜くとmake installが通るようになった。
結果とりあえず、CGI版のPHPは動作するようになった。

いろいろ調べてみたら、どうやらコマンドライン版のPHPがエラーを吐いているようだ。phpを叩いたけでこの有様。

$ php
ld.so.1: php: 重大なエラー: 再配置エラー: ファイル /opt/sfw/bin/php: シンボル xmlParserInputBufferCreateFilenameDefault: 参照シンボルが見つかりません。
強制終了

しかも、毎回作り直してるのにもかかわらず吐いてるみたい。泣けてきた。

libconv、libxml2の影響調査

こっちより先に、開発環境にlibiconvとlibxml2が悪さをしないか調べないと。
→一部モジュールで不具合出るけど、僕には関係無い部分だから大丈夫だった。

原因調査その2

追加で調べてると、どうやらlibxml2が古いらしい。なんで?さっき入れたのに。
xml2-config --version
をで確認すると、libxmlがインストールした/usr/localに入るsunfreeware製ではなく、Sun純正SUNWlxmlのバージョンが表示されてました。
"--with-libxml-dir"でディレクトリ指定してもなんか効いてないし。ムキー

と思ったらxml2-configは/usr/xml2-configで、sunfreeware版は/usr/local/bin/xml2-configにいました。
どうやらPATHの設定の仕方で、/usr/local/binを先に見るようにしてみたけどだめー!

今日はここまで。

もうやめたくなってきた。大体一回できたものが出来なくなるのはなんでだ。
go-pearでローカル版PEARがうまく使えたらもうやめる。

といいつつhttp://xmlsoft.org/から大本のソースを持ってきてリトライ

# wget ftp://xmlsoft.org/libxml2/libxml2-2.6.29.tar.gz
...
# gtar zxvf libxml2-2.6.29.tar.gz
..
# ./configure
...
# make && make install
...

だめー!!むかついた!!!

libxsltも入れないとだめか?でももうなんというか違う気がする。一回通ってたのにダメになるとか意味がわからねぇ
Monologue:PHP5のインストール

もうこの環境ではPEARは放置することにした。別の環境で勉強しよう。