さくらインターネットで PHP5 + mysqli

ちょいとはまったので自分用の備忘録として。

  • サーバに入っているデフォルトの PHP4 では、mysqli を使えません。また、mysqli を使うには、PHP5 が必要で、コンパイル時に mysqli 拡張を使う旨を明示的に指定する必要があります(後述)。
  • PHP5 のコンパイル時に MySQL 4.1 以降のヘッダやライブラリが必要となりますが、サーバに入っている MySQL はこれまた古いので、適当にとってきてインストールします。あまり考えずに 4.1.22 をとってきて ./configure --prefix=$HOME/local; make; make install でいけました。
  • つぎに PHP5 をとってきますが、このとき 5.2.1 を選択するのがミソです。最新の 5.2.4 だと 500 Internal Server Error となり、PHP が実行できませんでした。コマンドラインでは動作するので、おそらくapache との相性の問題だと思われますが、こんなのわからんです・・・
  • PHP5 を次のようなオプションをつけてコンパイルします。

%./configure --prefix=$HOME/local --with-iconv=/usr/local --with-config-file-path=$HOME/local/etc --program-suffix=5 --with-pear=$HOME/local/share/pear5 --enable-force-cgi-redirect --enable-mbstring=all --enable-mbregex --enable-mbstr-enc-trans --enable-versioning --enable-trans-sid --with-openssl=/usr --with-soap=yes --with-zlib=/usr --with-gd=/usr/local --with-jpeg-dir=/usr --with-freetype-dir=/usr --with-ttf --with-png-dir=/usr --with-curl --with-mysqli=$HOME/local/bin/mysql_config
...
%make
%make install

最後の --with-mysqli=$HOME/local/bin/mysql_config がミソです。あとは php5 を適当なところにハードリンクしたり .htaccess を指定します(詳細は下記のリンク参照)。

これでようやく mysqli が使えるようになりました。ちょっと変則的なことをやる場合、公式サイトにも情報がないことが多いので、ブログ記事がとても参考になります。$HOME/local 配下だけで容量の 1/3 くらい消費しているので、素直に自前のサーバを用意すればいいんですけどね。まぁお遊びなので、コストをかけずにどこまでできるかというのも楽しんでたりもするのですが。
mysqli は Ruby/MySQL の使い方と似ているのでお手軽に使えそうです。ちょうど imdb のデータから類似映画を引き出したものを MySQL につっこんだところなので、php から色々叩いて遊んでみようと思っています。

参考 URL