付録 A古いバージョンのPHPからの移行

目次
PHP 3 から PHP 4 への移行
PHP/FI 2.0 から PHP 3.0 への移行

PHP 3 から PHP 4 への移行

PHP 3 から PHP 4への移行は相対的に簡単で、コードの変更は全く必要あ りません。二つのバージョン間には、若干の非互換性があります。これら の非互換性により影響を受けないことを確認するために非互換性の一覧を 確認することが望まれる可能性があります。(これらの非互換性により影 響を受ける可能性は極めて少ないです)

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 を行います。その他は、 通常のインストール手順を行います。例えば、次のようにします。


$ ./configure \
  --with-apxs=/apache/bin/apxs \
  --enable-versioning \
  --with-mysql \
  --enable-track-vars
      

設定ファイルの移行

グローバル設定ファイル

グローバル設定ファイル、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  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 スクリプトを実行して下さい。例えば、


	~/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がインストールされていることを必要とします。