PHP 4のインストールと環境設定
次はPHP 4のインストールです。ご存じのとおり、PHP 4.x系のサポートは2008年8月8日に終了しました。今後はセキュリティホールが見つかったとしても公式サイトからの修正リリースはありません。
現時点ではPHP 5.2.x系の利用が強く推奨されていますので、PHP 4.x系をわざわざインストールする必要がないと思われるかもしれません。しかし、PHP 4.x系向けに作られたプロジェクトを抱えている場合、速やかに移行する必要がありますので、動作検証環境として持っておきたいところです。
ビルドとインストールの手順はPHP 5と同じですが、そのままインストールするとPHP 5との共存ができません。これはApacheにPHPを認識させるためのMIMEタイプの記述が、PHP 4からPHP 6まですべて同じであることが原因です。これをバージョンごとに変えることにより1つのApache上で使い分けることができます。
PHPのデフォルトでは「application/x-httpd-php」というMIMEタイプが割り当てられます。前項でインストールしたPHP 5はこのMIMEタイプでApacheに組み込まれました。これからインストールするPHP 4は、「application/x-httpd-php4」というMIMEタイプに変更しApacheに組み込みます。
このMIMEタイプはPHPのソースコード内で定義されており、ビルドオプションなどで動的に変更することができません。ビルドする前にソースコード内のMIMEタイプ文字列を直接変更する必要があります。
それではPHP 4.x系の最終リリースとなる4.4.9をダウンロードし、アーカイブを解凍します。
$ curl -o php-4.x.tar.gz -L http://jp2.php.net/get/php-4.4.9.tar.gz/from/this/mirror |
ApacheモジュールとしてのMIMEタイプの記述は、解凍したソースコードディレクトリ下のsapi/apache2handler/sapi_apache2.cファイル内に記述されています。この定数部分を「application/x-httpd-php4」に変更するだけです。
#define PHP_MAGIC_TYPE "application/x-httpd-php" |
↓ |
#define PHP_MAGIC_TYPE "application/x-httpd-php4" |
sapi/apache2handler/sapi_apache2.c (60行目) |
このソースコードでビルドすれば、MIMEタイプを変更したPHP 4.4.9がApacheに組み込まれます。以下のconfigureオプションとともにインストールを実行しましょう。
$ ./configure --prefix=/usr/local/lib/php-4.4.9 \ |
インストール後の環境設定は、前項のPHP 5と同様ですので、php.iniの準備とinclude_pathの設定、コマンドラインツール群のエイリアス作成を行っておきましょう。
PHP 6のインストール
最後はPHP 6です。現在、PHP 6はプレビューレベルの配布物がありませんが、開発版のスナップショットは毎日更新されています。ここではCVS上のすべての開発ブランチが2時間ごとにチェックアウトされパッケージ化されています。PHP 6も未リリースの開発版ですが、ソースコードはいつでもダウンロードが可能です。
関連記事: | |
PHP Snapshots http://snaps.php.net/ |
PHP 6の新機能の目玉はUnicodeサポートです。正式に言語エンジンレベルで多言語化がサポートされます。これまでのPHPでもEUC-JPやUTF-8などの文字コードは使用可能でしたが、それらはmbstring拡張モジュールやiconvなどのおかげです。PHPのネイティブな関数群はほとんどがマルチバイト文字列について考慮されておらず、しばしばセキュリティホールとして指摘されることもあったくらいです。
このUnicodeサポートを実現できたのは内部的にICU(International Components for Unicode)と呼ばれる外部ライブラリを使用しているからです。ICUはソースコードにバンドルされていませんので、今回はportコマンドでインストールします。ついでに最新のlibxml2パッケージも必要となるのでここでインストールしておきましょう。
$ sudo port install icu |
関連記事: | |
ICU Home Page http://www.icu-project.org/ |
後はPHP 4のインストールと同じ手順です。http://snaps.php.netより、php-6.0-devのアーカイブファイルをダウンロードし、解凍したフォルダ内に移動します。
次にフォルダ内のsapi/apache2handler/sapi_apache2.cファイルを開き、MIMEタイプを変更します。PHP 6用のMIMEタイプとして「application/x-httpd-php6」と記述します。
#define PHP_MAGIC_TYPE "application/x-httpd-php" |
↓ |
#define PHP_MAGIC_TYPE "application/x-httpd-php6" |
sapi/apache2handler/sapi_apache2.c (60行目) |
configureオプションは、--with-icu-dir、--with-libxml-dirオプションでそれぞれのライブラリへのパスを指定し実行します。エラーがなければmake、make installを実行しインストール完了です。
$ ./configure --prefix=/usr/local/lib/php-6.0.0-dev \ |
インストール後はPHP 4と同様に環境設定を行っておきましょう。
3/4 |
Index | |
Mac内にPHP4、5、6を同居させるコツ | |
Page1 ライブラリのインストール PHPのインストール、その前に |
|
Page2 PHP 5のインストール PHP 5の環境設定 |
|
Page3 PHP 4のインストールと環境設定 PHP 6のインストール |
|
Page4 拡張子でPHPのバージョンを変える ディレクトリごとにPHPのバージョンを変える バーチャルホストごとにPHPのバージョンを変える |
Mac OS X+PHPでオールインワン環境 |
Mac OS X関連記事 |
プログラマーを引き付けるMac OS Xの魅力 続々移行するそのワケとは Mac一筋という熱狂的なユーザーだけでなく、「面白いことをしたい」と考えるエンジニアもMac OS Xを利用し始めている。いったいなぜだろう |
|
Mac OS XでAMP構築 3通りの方法で整備できる開発環境 Mac OS Xの上にWebアプリケーションの定番、AMP(Apache+MySQL+PHP)環境を3通りの方法で導入してみましょう |
|
Mac OS Xで動かす軽量プログラミング言語 導入からPHP拡張モジュール組み込みまで Leopardでは、インストール直後からいくつかの軽量プログラミング言語が利用できます。早速試してみませんか? |
|
Objective-Cは特殊な言語? Cocoaの素、Objective-Cを知ろう(1) iPhone用アプリケーション開発で注目を集める言語「Objective-C」。C++とは異なるC言語の拡張を目指したこの言語の基本を理解しよう |
|
Mac内にPHP4、5、6を同居させるコツ Mac OS X+PHPでオールインワン環境(インストール編) PHP4の開発は終了したが、移行の問題は残されている。異なるバージョンのPHPをスムーズに切り替えるには? |
|
- プログラムの実行はどのようにして行われるのか、Linuxカーネルのコードから探る (2017/7/20)
C言語の「Hello World!」プログラムで使われる、「printf()」「main()」関数の中身を、デバッガによる解析と逆アセンブル、ソースコード読解などのさまざまな側面から探る連載。最終回は、Linuxカーネルの中では、プログラムの起動時にはどのような処理が行われているのかを探る - エンジニアならC言語プログラムの終わりに呼び出されるexit()の中身分かってますよね? (2017/7/13)
C言語の「Hello World!」プログラムで使われる、「printf()」「main()」関数の中身を、デバッガによる解析と逆アセンブル、ソースコード読解などのさまざまな側面から探る連載。今回は、プログラムの終わりに呼び出されるexit()の中身を探る - VBAにおけるFileDialog操作の基本&ドライブの空き容量、ファイルのサイズやタイムスタンプの取得方法 (2017/7/10)
指定したドライブの空き容量、ファイルのタイムスタンプや属性を取得する方法、FileDialog/エクスプローラー操作の基本を紹介します - さらば残業! 面倒くさいエクセル業務を楽にする「Excel VBA」とは (2017/7/6)
日頃発生する“面倒くさい業務”。簡単なプログラミングで効率化できる可能性がある。本稿では、業務で使うことが多い「Microsoft Excel」で使えるVBAを紹介する。※ショートカットキー、アクセスキーの解説あり
|
|