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でもいけます »
「パソコン・インターネット」カテゴリの記事
- @nifty v6サービスに切り替え(2021.03.30)
- WindowsUpdate でのトラブル対応(2020.08.12)
- BD再生専用機の電源交換(2020.05.11)
- Windows10 WindowsUpdate 8月月例パッチでトラブル(>_<)(2019.08.31)
- メインPCのHDDをSSDに換装~Windows10再インストール(2019.03.27)
コメント