iPod touchでオフラインモードを持ったRSSリーダを作る
「第3回:iPod touchで動作するテキストエディタはこう作る!」では、非公認SDKとObjective-Cの組み合わせで簡単なテキストエディタを作ってみました。iPod touchでのアプリケーション開発は、ほとんどの人が触れたことのないObjective-Cを使用し、さらにAPIのリファレンスがないといった、非常に敷居が高い状況です。このため、実用的なアプリケーションを作るのは困難でした。
そういった意味でAppleがSafari上で動作するWebアプリケーションを推奨することは、iPhoneやiPodの可能性を高める上では、良い戦略なのかもしれません。しかしiPod touchには、無線LANのない環境ではWebアプリケーションを立ち上げられないという弱点があります。
そこで今回は、iPod touch上のPHPに実行環境を構築し、さらにPHPを使った「オフラインでも動作するRSSリーダ」を作ってみましょう。
iPod touchにPHPをインストールする
今回はiPod touchにApacheとPHPをインストールし、その上でRSSリーダを作成します。iPod touchのローカルのWebサーバ環境にSafariからアクセスすることで、インターネットネットに繋がっていない場所でもコンテンツをブラウズできるようにします(図1)。
「AppSnapp Installer for 1.1.1」などのツールを使ってJailBreakを行った場合にホーム画面に追加される「Install」は、有志が配布しているアプリケーションを簡単にインストールするためのツールです。
このInstallからApacheとPHPをインストールすることができます。まずホーム画面から「Install」のアイコンをタップしてアプリケーションを起動し、画面下部に表示される「Install」タブをタップします。
アプリケーションのカテゴリ一覧が表示されますが、PHPは「Development」、Apacheは「Network」カテゴリにそれぞれ属しています。もしこれらのカテゴリが表示されていない場合、「Community sources」パッケージを導入することで、選択できるようになります。
「Development → PHP」とタップすると、「Package」画面が表示されます。右上にある「Install」ボタンをタップすると、パッケージのダウンロードからインストールまでが自動的に実行されます。同様に「Network → Apache」と進めることで、Apacheもインストールしてください。
図1:iPod touchでApache+PHP環境の模式図
リスト1:PHPの設定
# echo 'ScriptAlias /php /opt/iphone/bin' >> /etc/httpd/httpd.conf
# echo 'AddType application/x-httpd-php .php' >> /etc/httpd/httpd.conf
# echo 'Action application/x-httpd-php "/php/php-cgi"' >> /etc/httpd/httpd.conf
# apachectl restart
# echo "<?php phpinfo(); ?>" > /Library/WebServer/Documents/info.php
PHPの設定
通常PHPはApacheのモジュールとして組み込まれています。しかし、今回インストールしたPHPはApacheと紐付けられておらず、CGIモードから利用するように設定を行う必要があります。
CGIモードで動作させるということは、PHP本体が常駐せず、Webページにアクセスがあるたびに実行時間がかかってしまうということです。しかしメモリ容量の少ないiPod touchでは、アクセスに少々時間が掛かることよりも、常駐させずにメモリ消費を軽減するほうが重要な課題であるといえるでしょう。
インストールの後、通常のモジュール形式と同じように「.php」の拡張子を持つファイルはPHPで処理するために、Apacheの設定を変更します。
Apacheの設定を変更します。「第2回:iPod touchの自作アプリケーションが作れる&動かせる!」で解説したように、sshを使ってiPod touchへログインしてリスト1のように入力してください。
これで、ApacheからPHPが使えるようになりました。Apacheで公開するディレクトリ(DocumentsRoot)は「/Library/WebServer/Documents」に設定されています。リスト1の最後でこのディレクトリにサンプルファイルを生成しているので、Safariからアクセスしてみましょう。
iPod touchのSafariから確認
iPod touchに導入したApacheにSafariからアクセスするには「http://127.0.0.1/」にアクセスします。Apacheの初期画面が表示されたでしょうか。
一般的に、そのPC自身にアクセスする場合には「http://localhost/」というURLを使います。しかしiPod touchでは、どのネットワークにも繋がっていない場合に「localhost」という名前で解決できないため、直接IPアドレスの「127.0.0.1」を使います。
ここで表示するWebページはiPod touch上のApacheで動作しています。このため、iPod touchが無線LANに繋がっていない状況でも使うことができるのです。
動いているPHPの環境を確認
リスト1で作った「info.php」は「http://127.0.0.1/info.php」にアクセスすることで確認できます。PHPの情報がずらっと表示され、環境設定やインストールされているエクステンションを確認できます。これを見る限り一般的なPHPと特に変わったところはなく、多くのアプリケーションを動かすことができるようです。
今回インストールしたPHPの一番の特徴は「PEAR」がインストールされていない点です。別のパッケージとして提供されてもいないため、「Intstall」ツールを使ってパッケージからインストールした場合、PEARを使ったPHPアプリケーションは動作しないということです。
このため今回は、PEARを使わずにアプリケーションを構築しています。 次のページ