あーかいぶすハイディフィニション

ここはもう更新しとらんのじゃ

RHEL4にPHP5を導入するという選択肢

なんで商用Linuxでバンドル外のメジャーバージョン使うの馬鹿なの?死ぬの?(´゚д゚`)

RHEL5素直に入れろと各方面から言われそうですが、RHEL4のサーバがきちゃったんだしそんなもんしょうがないでしょ!としかいえない……しかしRHASにはphp5のパッケージがあるのに、なぜRHELにはないのか。

とりあえずphpを削除しよう

 # rpm -qa | grep php | xargs rpm -e --nodeps

php関連のrpmを問答無用で削除します、依存関係のあるファイルがあっても放置してガンガン削除します。ちなみに何が削除されるのかというと、

 # rpm -qa | grep php

で出力される一覧のパッケージです。何で削除されるかはxargsでググれ。

phpをインストールしよう

方法は大体以下。

  • CentOSFedoraのパッケージを使用する
  • 野良RPMを使ってみる
  • ソースからインストールする

どう考えてもソースインストールしかまともに見えないので、ソースからインストールします。
とりあえず必要なものはphp5のソースだけなので、さっさと拾ってきます。

 $ wget http://jp2.php.net/get/php-5.2.6.tar.gz/from/this/mirror

んでコンパイルしてインストール。

 $ tar -zxvf php-5.2.6.tar.gz
 $ cd php-5.2.6
 $ ./configure --prefix=/opt/local --with-apxs2=/usr/sbin/apxs --without-sqlite --without-pdo-sqlite
 $ make
 $ make test
 # make install

はいできたー、あとはbash_profileにでも、/opt/local/binへのパスを記述してください。

注意

php5は標準でsqliteをサポートしているらしく、コンパイル時にsqlite.hを自動的に参照しているらしいです。これがない状態でコンパイルを行うと、一見正常に終了しているのですが、apache等でlibphp5.soを読み込んだときにエラーが出ます。なので、sqliteを使わない場合(インストールされていない場合)は、--without-sqliteおよび--without-pdo-sqliteを記述してあげましょう。

もしsqliteのエラーが出てしまった場合は?

bashの履歴にconfigureコマンドが残っている場合は、上記のwithput〜を追記してもう一度実行してください。それとお約束ですが、configureを行う前にmake cleanは必ず実行してね?