PHP 3 から PHP 4への移行は相対的に簡単で、コードの変更は全く必要あ りません。二つのバージョン間には、若干の非互換性があります。これら の非互換性により影響を受けないことを確認するために非互換性の一覧を 確認することが望まれる可能性があります。(これらの非互換性により影 響を受ける可能性は極めて少ないです)
最近のオペレーティングシステムは、バージョン認識と変数のスコープ 設定を行う機能を有しています。この機能によりPHP 3とPHP 4をApache サーバ上で同時に実行することが可能です。
この機能は、次のプラットフォームで動作することが知られています。
最近のbinutilsを有するLinux (binutils 2.9.1.0.25 でテスト)
Solaris 2.5 以降
FreeBSD (3.2, 4.0 でテスト)
この機能を有効にするには、PHP3 および PHP4 を APXS を使用するよう に設定(--with-apxs)し、必要なリンクオプション (--enable-versioning)を指定して configure を行います。その他は、 通常のインストール手順を行います。例えば、次のようにします。
グローバル設定ファイル、php3.iniはphp.iniに名前が変更になりまし た。
PHPモジュールにより認識されるMIME 型が変更になりました。
application/x-httpd-php3 --> application/x-httpd-php application/x-httpd-php3-source --> application/x-httpd-php-source |
次のような構文を使用することにより、(両方のバージョンがサーバに インストールされている場合に)両方のバージョンのPHPで動作する設定 ファイルを作成可能です。
AddType application/x-httpd-php3 .php3 AddType application/x-httpd-php3-source .php3s AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps |
加えて、Apache用のPHPディレクティブ名が変更されました。
PHP 4.0 では、PHPに関連するApacheディレクティブは以下の4つのみで す。
php_value [PHPディレクティブ名] [value] php_flag [PHPディレクティブ名] [On|Off] php_admin_value [PHPディレクティブ名] [value] php_admin_flag [PHPディレクティブ名] [On|Off] |
adminがついた値とadminが付いていない値では、違いが二つあります。
adminが付いた値(またはフラグ)はサーバ全体のApache設定ファイル (例えば、httpd.conf)でのみ使用可能です。
通常の値(またはフラグ)はある種のPHPディレクティブ、例えば、セー フモードを制御できません。(セーフモードの設定を.htaccessファイ ルで上書きできるとしたら、セーフモードの目的に反します)逆に、 adminが付いた値は、全てのPHPディレクティブの値を修正可能です。
移行の過程をより簡単にするために、PHP 4.0 には、Apache設定ファイ ルと .htaccess ファイルをPHP 3.0 と PHP 4.0の両方で動作するよう 自動的に変換するスクリプトが付属しています。これらのスクリプトは、 MIME型の行を変換しません!これらは、使用者自身で変換する必要があ ります。
Apache設定ファイルを変換するには、(scripts/apache/ ディレクトリ にあります。)apconf-conv.sh スクリプトを実行して下さい。例えば、
元の設定ファイルは、httpd.conf.orig に保存されます。
.htaccess ファイルを変換するには、(同じくscripts/apache/ ディレ クトリにある)aphtaccess-conv.sh スクリプトを実行して下さい。
同様に、元の .htaccess ファイルは、.orig が後ろについてファイル に保存されます。
変換スクリプトは、awkがインストールされていることを必要とします。