« Buffalo TS-XL/R5をいじってみた | トップページ | 1GHzでもいけます »

2009年3月 3日 (火)

PHP+MySQL+Apache on Solaris10

職場のWeb鯖でちょっとした不具合があって(画像のサムネイルが作れない)、その原因を調べてみたところ、PHPが利用するGDラインブラリーが入っていなかったことが原因であることが判明。で、それを入れて、PHPを再構築することにしました。 でも、GDを入れるためには、さらに
libZlib
libjpeg
libpng
等のライブラリーが必要です。幸いSolaris10では、これらのライブラリーが/usr/libに入っているので、それを使うことにして、直接 gd-2.0.35をダウンロードして
./configure
make
make install

でインストール完了。 次に、いよいよPHPのインストール、現在の最新リリースphp-5.2.9のソースをダウンロード。 そして、ここで大問題なのが./configureのオプション設定。

configureにあれこれオプションをつけないといけないのって、apacheとphpくらいのものだよね。phpもとりあえず、動くだけなら、オプション無しでも大丈夫なのでしょうけど、ApacheとかMySQLとかを連携させようと思うと、

./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-libxml-dir=/usr/local --enable-zend-multibyte   --with-mysql=/usr/local  --with-iconv-dir=/usr/local --with-iconv --enable-mbstring  --with-gd=/usr/local/ --with-freetype-dir=/usr/sfw --with-jpeg-dir=/usr/lib --with-png-dir=/usr/lib --with-zlib-dir=/usr/lib --with-xpm-dir=/usr/lib

こんな感じになってしまいました(重複しているオプションもあるかも)
これで、すんなりmakeが通ればよいのですが、makeの最後でライブラリーとリンクするところで、mysql関係のシンボルが見つからないとのエラーがぞろぞろ・・・

Solaris10にはもともと/usr/sfwにMySQLが入っているのですが、Versionが4.0なので、最新の5.0.77を/usr/localに入れています。そして、configureのオプションで/usr/localに入れているphpを使うように設定して、さらにPATH設定も/usr/sfw/binよりも/usr/local/binを先にして、crleでライブラリーのサーチ順でも/usr/local/libを先にしているのに、 なぜか/usr/sfw/lib/mysqlに入っているSolaris付属のPHPライブラリーにリンクしてしまって、
シンボルが見つからないとのエラーを吐いてしまいます。

そんなこともあって、pkginfo |grep mysql
でSolaris付属MySQLのパッケージを調べて、全てpkgrm してしまいました。そのご、再コンパイルすることで、/usr/local/に入っている最新のPHPにリンクしてくれるようになりました。

Solarisのインストール作業は作業メモを作っているので、その通りに従っていれば、問題ないのですが、PHPとMySQLに関してはSolaris付属にするか、自分でソースから入れるか、迷いながらあれこれ試したため、作業メモも両方の記述がごちゃごちゃ。しかも、PHPはSolaris付属のMySQLのライブラリーにリンクしているのに、データベースは/usr/localに入っているソースから入れたMySQLで構築していたりと、かなり怪しい状態で稼動していたことが判明。 よく動いていたものだなぁ。

« Buffalo TS-XL/R5をいじってみた | トップページ | 1GHzでもいけます »

パソコン・インターネット」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: PHP+MySQL+Apache on Solaris10:

« Buffalo TS-XL/R5をいじってみた | トップページ | 1GHzでもいけます »