導入から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 |
次に、PEAR環境で使用するディレクトリを設定します。今回はこのままで使用しますので、Enterキーで先に進みます。
1. Installation prefix ($prefix) : /Users/shigeta/php |
最後に、PEAR標準パッケージを同時にインストールするかと聞かれますので、Yを入力します。
The following PEAR packages are bundled with PHP: PEAR_Frontend_Web-beta, |
これでインストールは完了です。パッケージは「~/php/PEAR」ディレクトリにインストールされ、pearコマンドは、ホームディレクトリ以下の「~/php/bin/pear」となります。試しに「list」オプションを付けて、インストール済みのパッケージを表示してみましょう。
$ ~/php/bin/pear list |
このようにパッケージとバージョンのリストが表示されれば成功です。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をスムーズに切り替えるには? |
|
- PHPでGAE上に社員検索アプリを作る (2010/3/18)
GAEの制約により使うことができなかったテンプレートエンジン。PHP4GではSmartyが使えるようになった - 構造体の便利な用途、インターフェイス入門 (2010/3/10)
継承機能を排除したインターフェイス機能でダックタイピングが可能となった。サンプルで確かめてみよう - プライベートモードの履歴状態 (2010/3/1)
仕事に集中できるときと、なかなかできないとき、ありますよね。状態遷移図で考えてみよう - Goのswitch文で解くFizzBuzzと構造体のイントロ (2010/2/25)
Goではif文と同等の制御構造をswitch文で表現できる。試してみよう
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
| 「いつかは壊れるサーバ」そんな故障に 迅速で安価に手軽に対応する方法とは? New! |
| 「特権ユーザー」の事件を防げ! 万能権限を持つユーザーの管理方法とは? New! |
| 仮想環境の構築とデータ保護の特効薬?! 実績と信頼性の高いパッケージで安心運用 |
| 仮想環境のバックアップもこれまでどおり 「まるごと取ってまるごと戻す」簡単運用 |
| おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |
| その数、なんと400台以上! グループ内 サーバの「統合管理」によるメリットは? |
| 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |
| 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
お勧め求人情報

**先週の人気講座ランキング**
〜CCNA編〜
| ◆ | 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台以上! グループ内 サーバの「統合管理」によるメリットは? |






