PHP 4.0への移行

PHP 4への移行 (2001/5/12改訂: Hirokawa)

PHP 3からPHP 4への移行は比較的簡単で、コードの変更はほとんど必要ありません。 ただし、2つのバージョンには、互換性がない部分が僅かにあります。詳細については、PHPマニュアル「PHP 3.0からPHP 4.0への移行」を参照下さい。

PHP 3とPHP 4の同時実行

PHP 3とPHP 4を同時に同じサーバ上で動作させることができれば移行が円滑に進むと思われます。主な以下の手順のどれかにより同時実行が可能です。

設定ファイルの移行

グローバルな設定ファイル

グローバルな設定ファイル php3.iniは、php.iniという名前に変更されました。

 

Apache 設定ファイル

PHPモジュールにより認識されるMIME タイプは次のように変更されました。

application/x-httpd-php3        -->    application/x-httpd-php

application/x-httpd-php3-source    -->    application/x-httpd-php-source

次のような構文を用いて両方のバージョンのPHPで動作する設定ファイルを作成することが可能です。 (どちらのバージョンがサーバーモジュールとしてコンパイルされているかで設定が異なります。)


AddType .php3 application/x-httpd-php3
AddType .phps application/x-httpd-php3-source


AddType .php3 application/x-httpd-php
AddType .phps application/x-httpd-php-source


Apache 用の PHP ディレクティブの名前も変更されました。

PHP 4.0 では、PHP に関連する Apache のディレクティブは次の4つだけです。

php_value [PHPディレクディブ名] [値]

php_flag [PHPディレクディブ名] [On|Off]

php_admin_value [PHPディレクディブ名] [値]

php_admin_flag [PHPディレクディブ名] [On|Off]

 

admin 用の設定値と admin 用でない設定値の間には、違いが二つあります。

  1. admin の設定値 (またはフラグ) は、サーバー全体に作用する apache 設定ファイル(つまり、 httpd.conf)でのみ使用可能です。
  2. 通常の設定値 (またはフラグ)は、セーフモードのような特定のPHP命令を制御できません。 (セーフモードの設定を.htaccessで設定できるとしたら、セーフモードの趣旨が 脅かされます) 逆に、adminの設定値により全てのPHP命令を修正可能です。

移行の過程をより容易にするために、PHP 4.0 には Apache 設定ファイルと .htaccess ファイル を PHP 3.0 と PHP 4.0 の両方で動作するように自動的に変換するスクリプトが バンドルされています。このスクリプトは、MIMEタイプの行を変換しません! これらは自分で変換する必要があります。

 

Apache 設定ファイルを変換するには、(scripts/apache/ ディレクトリにある) apconf-conv.sh スクリプトを実行して下さい。  例えば、

~/php4/scripts/apache:#  ./apconf-conv.sh /usr/local/apache/conf/httpd.conf

元の設定ファイルは、httpd.conf.origに保存されます。

.htaccess ファイルを変換するには、(同じくscripts/apache/ ディレクトリにある) aphtaccess-conv.sh スクリプトを実行して下さい。

~/php4/scripts/apache:#  find / -name .htaccess -exec ./aphtaccess-conv.sh {} \;

同様に、元の .htaccess ファイルは .orig を付けたファイルに保存されます。

変換スクリプトを実行するには、awk がインストールされている必要があります。