【3/18〜】Amazon、VMwareが語る『クラウドの未来』 スラッシュドット    はてなブックマーク  Yahoo!ブックマークに登録  印刷

導入からPHP拡張モジュール組み込みまで

Mac OS Xで動かす軽量プログラミング言語

繁田 卓二
株式会社 qnote

2008/6/5

Mac OS X(Leopard)では、Webアプリケーション開発でおなじみのPerlやPHP、Python、Rubyといった軽量プログラミング言語を扱うことができます。その設定方法を紹介しましょう(編集部)

 Webアプリ開発機としてのMac

- PR -

 名実共にUNIXと認定されたMac OS X 10.5 Leopard。最近ではUNIX系Webアプリケーションの開発機としてMacを使用されている方も多いのではないでしょうか?

 その理由の1つとして、Webアプリケーション開発に必要な一連の工程が、1台のMac上でシームレスに行えるというメリットが挙げられます。従来のようにプログラミング・動作デモ・デバッグ・単体テスト・性能評価などといった環境それぞれを「構築する」のではなく、手元のMac上に「乗せる」というスタイルは、迅速さと適応性を求める最近の開発スタイルにうまくマッチしているといえるでしょう。

 今回はそのLeopardで扱える軽量プログラミング言語(Lightweight Language)の環境を紹介し、さらにその中でも人気の高いPHPの開発環境についてご紹介します。

関連記事:
リンク Ruby2.0からオレ様言語まで、軽量言語のお祭りが開催
http://www.atmarkit.co.jp/news/200708/07/ll2.html
リンク プログラマーを引き付けるMac OS Xの魅力
http://www.atmarkit.co.jp/fcoding/articles/macosx/macosxa.html
リンク Mac OS XでAMP構築
http://www.atmarkit.co.jp/fcoding/articles/macamp/macampa.html

 Leopardで動く軽量プログラミング言語は?

 Leopardは「UNIX」と呼ばれるだけあって、インストール直後からいくつかのLL環境が構築されています。各言語のバージョンは、いずれもLeopard発売直前の最新版が導入されており、これらはセキュリティアップデートで自動的に更新される可能性もあります。また、ローカルのWebサーバとの連携もある程度準備されており、変更したプログラムを即座にブラウザで確認する、という開発スタイルが容易に行えます。

 Leopardの主なLL環境とバージョンは以下のとおりです。

■Perl(バージョン:5.8.8)

モジュール管理ツール「CPAN」を含め、Leopard特有のクセというものもなく、ほぼすべての環境がそろっています。

■Python(バージョン:2.5.1)

Pythonパッケージ管理ツールのeasy_installコマンドやZope Interface、汎用ネットワークフレームワークのTwistedなどもインストール済みです。また、Cocoaとの言語ブリッジであるPyObjCもインストールされており、X Codeとの連携によってPython言語でCocoaアプリケーションを記述できるようになっています。

■Ruby(バージョン:1.8.6)

Rubyパッケージ管理ツールのgemコマンドのほか、WebアプリケーションフレームワークであるRuby on Railsもインストールされています。また、簡易WebサーバであるWEBrickも含まれていますので、Railsの性能を100%活用できるでしょう。

■PHP(バージョン:5.2.4)

コマンドラインで使用するphpコマンドと、ApacheのモジュールとしてのPHPがインストール済みです。ただし、パッケージ管理ツールであるpearコマンドと標準PEARライブラリはインストールされていません。

 もちろん、これら以外の言語環境をインストールすることもできますし、バージョンアップも可能です。ただし先にも述べたように、OSのソフトウェアアップデートやセキュリティアップデートによって上書きされる可能性があるため、注意が必要です。

 では、ここからはPHPにフォーカスを当て、アプリケーション開発に必要な環境を構築していくことにしましょう。なお、ApacheのモジュールとしてのPHPはデフォルトでは無効になっているので、「Mac OS XでAMP構築」を参考にしてください。

 PEAR環境のインストール

 複数あるLeopardのLL環境の中で、PHPだけに備わっていないものが1つあります。それはパッケージ管理ツールです。PerlにはCPAN、Rubyにはgemなどのツールが用意されているにもかかわらず、なぜかPHPだけはパッケージ管理ツールが備わっていません。

 PHPにもPEAR(PHP Extension and Application Repository)と呼ばれるパッケージ管理ツールが提供されており、リモートのリポジトリ経由でのインストールが可能なpearコマンドが存在します。PEARは公式サイトにインストーラが提供されていますので、これを使用して、LeopardにPEAR環境とツールをインストールしてみましょう。

 今回は、ユーザーのホームディレクトリ直下のphpディレクトリにPEAR環境を作ります。ホームディレクトリへ移動し、以下のようにcurlコマンドでインストーラを取得してphpコマンドに渡します。するとインストーラが起動し、インストーラの開始とプロキシの設定を聞かれます。特に変更が必要なければ、Enterキーで次に進みます。

$ mkdir ~/php
$ cd ~/php
$ curl http://pear.php.net/go-pear | php

Welcome to go-pear!
(省略)
If you wish to abort, press Control-C now, or press Enter to continue: 【←Enter】

HTTP proxy (http://user:password@proxy.myhost.com:port), or Enter for none:: 【←Enter】

 次に、PEAR環境で使用するディレクトリを設定します。今回はこのままで使用しますので、Enterキーで先に進みます。

 1. Installation prefix ($prefix) : /Users/shigeta/php
 2. Temporary files directory     : $prefix/temp
 3. Binaries directory            : $prefix/bin
 4. PHP code directory ($php_dir) : $prefix/PEAR
 5. Documentation base directory  : $php_dir/docs
 6. Data base directory           : $php_dir/data
 7. Tests base directory          : $php_dir/tests
1-7, 'all' or Enter to continue: 【←Enter】

 最後に、PEAR標準パッケージを同時にインストールするかと聞かれますので、Yを入力します。

The following PEAR packages are bundled with PHP: PEAR_Frontend_Web-beta,
PEAR_Frontend_Gtk2, MDB2.
Would you like to install these as well? [Y/n] : Y

 これでインストールは完了です。パッケージは「~/php/PEAR」ディレクトリにインストールされ、pearコマンドは、ホームディレクトリ以下の「~/php/bin/pear」となります。試しに「list」オプションを付けて、インストール済みのパッケージを表示してみましょう。

$ ~/php/bin/pear list
Installed packages, channel pear.php.net:
=========================================
Package          Version State
Archive_Tar      1.3.2   stable
Config           1.10.11 stable
Console_Getopt   1.2.3   stable
HTML_Template_IT 1.2.1   stable
MDB2             2.4.1   stable
MIME_Type        1.0.0   stable
PEAR             1.7.2   stable
PEAR_Frontend_Web 0.7.2  beta
Structures_Graph 1.0.2   stable

 このようにパッケージとバージョンのリストが表示されれば成功です。PEARパッケージのコマンドラインスクリプトは「~/php/bin」ディレクトリにインストールされますので、環境変数PATHに追加しておくと便利です。

 LeopardのPHP環境を見る

 ここで、デフォルトで組み込まれているPHPの拡張モジュールを見てみましょう。

 PHPでは、データベース連携など特定の用途に特化した機能は、拡張モジュールとしてPHPのコアから切り離されています。これら拡張モジュールは、必要に応じて、PHPのコンパイル時に組み込みを指定し、インストールする形です。

 LeopardのPHPに追加されている主な拡張モジュールは、以下のとおりです。

LDAP LDAPディレクトリサーバとの連携
kerberos Kerberos認証のサポート
EXIF EXIFデータの読み書きをサポート
FTP FTPクライアントとしてのAPI
mbstring マルチバイト言語のサポート
iODBC iODBCによるデータベース操作API
MySQL/MySQLi MySQLデータベースのサポート

 こうして見ると、データベース連携のMySQL拡張やマルチバイト拡張など、一般的なWebアプリケーションで必須となるモジュールだけでなく、UNIXらしくiODBC拡張やOpenSSLのKerberos認証拡張などが組み込まれていることが分かります。同時に、デジカメ写真の情報を読み取るEXIF拡張が標準で組み込まれているところなどはMacらしい一面といえるのではないでしょうか。

 ところが、実際に開発を続けていると、最初に用意されている拡張モジュールだけでは機能が足りず、新たなモジュールが必要となってくることもあります。PHPには、デフォルトで組み込まれた拡張モジュール以外にも数多くのモジュールが存在します。使用頻度の高いものでは、PHPから動的に画像を出力するGD拡張モジュールや、PostgreSQLなどのデータベース連携の拡張モジュールなどが挙げられます。

 もちろんLeopardでも、これらのモジュールをコンパイルし、システムに組み込むことができます。次は、こういった標準以外の拡張モジュールを追加する方法を解説しましょう。

 
1/2

Index
Mac OS Xで動かす軽量プログラミング言語
Page1
Webアプリ開発機としてのMac
Leopardで動く軽量プログラミング言語は?
PEAR環境のインストール
LeopardのPHP環境を見る
  Page2
LeopardのPHP環境を拡張する準備
GD拡張モジュールのインストール

Coding Edgeフォーラム トップページ

 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メールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

スキルアップ/キャリアアップ(JOB@IT)

お勧め求人情報

キャリアアップ 〜JOB@IT
@IT Special -PR-
  TomcatやJBossなどAPサーバ環境に関する
情報を集約! “業務”用APサーバ大百科

New!
  一気に解説! 最新のクラスタストレージ
「RAIDを超えたストレージ基準」……など

New!
  クラウド的ユーザー体験の変化は脅威か?
仮想化技術を使いこなす運用管理術を紹介

New!

  上司や部下、部署内メンバーとの情報共有
を“ガラッ”と変えるコラボツールとは?

New!
  おばかアプリ選手権、第4弾開催中!!
ムダにカッコよくてくだらない作品求ム!

  社内ファイルサーバを“クラウド”に統合
VPN直結「クラウド型ストレージ」を紹介

  Twitterのアカウントはなぜ突破された?
メールによる新手の攻撃手法とその対策

  もう仮想化のお試しフェイズは終わりだ!
Hyper-V 2.0が基幹システムも仮想化

  美人!? まあまあ? 気になる いやし系!!
PV急増で「美人時計」がとった手段とは?

  クライアント企業から求められる人材
⇒IT技術と経営戦略を併せ持つ「戦略家」

  .NET編集長が実践する「技術情報検索術」
サンプル・コードを簡単に探す“技”は?

  業務効率と情報セキュリティ対策を両立!
手間なく確実に機密情報を守る方法とは?

  進化を続ける富士通ストレージETERNUS DX
製品開発者の自信を裏付けるものとは何か

  運用管理の課題を“2つの観点”から分析
ユーザー満足度の高い「仮想環境」とは?

  【CTC事例】約30の基幹システムを統合!
膨大なバッジジョブを制御した方法は?

  仮想化すればコストは削減できるか?
仮想化に必要な「3つの視点」を解説する

  その数、なんと400台以上! グループ内
サーバの「統合管理」によるメリットは?