インストール編 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 |
関連記事: | |
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をスムーズに切り替えるには? |
|
- プログラムの実行はどのようにして行われるのか、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を紹介する。※ショートカットキー、アクセスキーの解説あり
|
|