Debian FAQ

シェルでPHPを実行するとPHP5が動く?

PHP4のつもりで、シェルからPHPを実行すると、PG_connect()などのコマンドがundefinedになってしまい、PostgreSQL などのDBに接続できません。

Web経由では動いているので問題はないと思っていたが、念のためもう一度phoinfo()で確認してみる。
やはり、httpdではphp4.4.4が実行されているようです。
今度はシェルでバージョンを確認してみます。

# php -v

PHP 5.2 (cli)

と表示。つまりシェルではPHP5のコマンドとして実行されるとのこと。

いつもmakeでインストールしていた私にとっては、パッケージインストールのなせる業は、驚きの連続。
調査してみると、ただphpとコマンドを叩くと、php5-cli(コマンドライン版PHP5)を実行している模様。

これを、alternativesでアサインを切り替える。

まずは、php4-cli がインストールされていなかったので、インストールします。

# apt-get install php4-cli

# update-alternatives --display php

php -状態は manual。
リンクは現在 /usr/bin/php4 を指しています
/usr/bin/php5 - 優先度 50
スレーブ php.1.gz: /usr/share/man/man1/php5.1.gz
/usr/bin/php4 - 優先度 40
スレーブ php.1.gz: /usr/share/man/man1/php4.1.gz
現在の `最適' バージョンは /usr/bin/php5 です。

# update-alternatives --set php /usr/bin/php4

# php -v

PHP 4.4.4-8+etch3 (cli) (built: May 13 2007 18:57:03)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies