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は放置することにした。別の環境で勉強しよう。