Mac OS X+PHPでオールインワン環境

インストール編 Mac内にPHP4、5、6を同居させるコツ

繁田 卓二
株式会社 qnote

2008/8/27

エディタとWebブラウザさえあれば開発できる手軽さが特徴のLL言語。開発工程や環境を見直すと、もっとスマートなプログラミングが可能になる(編集部)

 準備編「クライアントPCに言語環境を入れる理由」では、PHPを実行するためのプラットフォームとなるWebサーバをクライアント環境にインストールしました。今回はそこにPHPをインストールします。

 しかし、ただ単にインストールするだけでは面白くないので、最新安定版のPHP 5.2.6はもちろん、すでに2008年8月でサポートが終了したPHP 4.4.9も含め、次期バージョンPHP 6.0.0までを1つのWebサーバ上で実行できる環境を構築します。

 複数のWebサーバを異なるポート番号で実行し続け、複数バージョンのPHPを実行する方法はこれまでにもありましたが、今回はデフォルトのポート番号(80)で複数バージョンのPHPを実行し、拡張子やディレクトリ、バーチャルホストごとにPHPのバージョンを変更できるフレキシブルな開発環境の構築方法を解説します。

ライブラリのインストール

 PHPをインストールする前に、PHPが必要とする外部ライブラリをあらかじめインストールしておきましょう。

 前回、MacPortsを使ったパッケージのインストールでは「依存する外部ライブラリも同時にインストールしてくれる」と解説しました。PHPをインストールすればPHPが必要とする依存ライブラリも同時にインストールされるはずです。

 にもかかわらず、ここで外部ライブラリをあらかじめインストールしておく理由は、今回のPHPのインストールにはMacPortsを使わないからです。MacPortsのパッケージはMac OS Xの環境向けのビルドオプションが提供されていますが、あくまでも標準的な環境を想定しており、今回のように複数バージョンをインストールするような環境は想定していません。今回は、PHPのソースコードを取得して手動でビルドし、インストールします。

 ソースをビルドする場合は、当然依存する外部ライブラリも自分で用意する必要があります。外部ライブラリは通常、インストールするパッケージごとに用意するのではなく、システム内に1つだけインストールしそれを共有することになります。つまり外部ライブラリは標準的な構成になるため、MacPorts経由でのインストールで事足りるということです。

 今回、PHPにはGD拡張を追加します。GD拡張は同名のグラフィックライブラリAPIをPHP関数で制御するための拡張です。集計結果のグラフ出力や、写真の合成加工など、比較的用途が多いにもかかわらず、Leopardに標準でインストールされているPHPにはこのGD拡張がインストールされていません。

 PHPにGD拡張を含めてインストールする場合、以下の名前のパッケージが必要になります。これらすべてをportコマンドでインストールします。

libpng PNG画像の編集
jpeg JPEG画像の編集

 GD拡張以外にも、PostgreSQL拡張などのデータベース連携や、Webサービス拡張などさまざまな拡張モジュールがあり、それぞれ必要とするライブラリが異なってきます。ライブラリが不足していればPHPのコンパイル時にエラーが出ますので、そのエラーメッセージをヒントに、拡張モジュールの仕様を読めば分かります。必要なパッケージ名さえ分かればMacPortsでインストールするだけですので、以下のportコマンドを実行しましょう。

$ sudo port install libpng
$ sudo port install jpeg

関連記事:
リンク Mac OS Xで動かす軽量プログラミング言語
http://www.atmarkit.co.jp/fcoding/articles/macll/maclla.html

PHPのインストール、その前に

 複数のPHPをインストールする前に、インストールしたバージョンの管理が煩雑にならないようにまとめておきましょう。まず、インストールするPHPのバージョンです。4.x系から6.x系までの最新版をインストールします。

PHP 4.x系 4.4.9
PHP 5.x系 5.2.6
PHP 6.x系 6.0.0-dev

 次にインストール先ですが、バージョンごとにディレクトリを作り、その中にすべてのファイルを集約することにします。それぞれのルートとなるディレクトリは以下のようになります。

PHP 4.x系 /usr/local/lib/php-4.4.9
PHP 5.x系 /usr/local/lib/php-5.2.6
PHP 6.x系 /usr/local/lib/php-6.0.0-dev

 コマンドラインツールや設定ファイルなどはバージョンごとに分かれたディレクトリ下にインストールされ、それぞれのディレクトリがルートとなる完全に独立した環境となります。ルートディレクトリ以下のファイル構成は各バージョン共通で以下のような構成になります。

php-x.x.x/
      bin/ PHPコマンドなど
      etc/ pear設定ファイル
      include/ ヘッダファイルなど
      lib/php PEARライブラリディレクトリ
      man/ マニュアル

 ただし、ApacheのPHPモジュールファイルのみ、このルートディレクトリ下ではなく、Apacheのモジュールファイルディレクトリにインストールされます。こちらはバージョンごとにファイル名が違うため、独立したファイルがそれぞれインストールされます。

PHP 4.x系 /opt/local/apache2/modules/libphp4.so
PHP 5.x系 /opt/local/apache2/modules/libphp5.so
PHP 6.x系 /opt/local/apache2/modules/libphp6.so

 インストールしたバージョンのPHPをアンインストールする場合は、ルートディレクトリ(/usr/local/lib/php-x.x.x)と、モジュールファイル(/opt/local/apache2/modules/libphpX.so)を削除するだけです。ルートディレクトリの指定はバージョンごとに変更することも可能ですので、好みのディレクトリに変更しても構いません。

 
1/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をスムーズに切り替えるには?
  Coding Edgeフォーラムフィード  2.01.00.91


Coding Edge フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

>

Coding Edge 記事ランキング

本日 月間