Hatena::ブログ(Diary)

Okiraku Programming RSSフィード Twitter

2008-07-23 iPod touchでlighttpd

iPod touchでlighttpd

JB済みiPhone / iPod touch(2.0)上で軽量HTTPDサーバ lighttpd を動かしてみたのでやり方のメモ。ただし今のところ静的コンテンツの配信のみです(lighttpd自体はCGIなどにも対応しています)。

ローカルファイルをおいておくと、オフライン時でも見られて便利なので。


追記1: iPhone / iPod touch 3.1 でも動作を確認。


手順

  1. Pwnage Toolとかでカスタムファームウェアを作って導入
  2. Cydiaインストールされるので、それを使ってOpenSSHを導入
  3. 同じくlighttpdを導入
  4. 設定ファイルが付属していないorzので、scpなどで以下の設定ファイルを /etc/lighttpd.conf に配置
  5. 電源ON時に自動起動させるため、同様にscpなどで以下のlaunchd用の設定ファイルを配置
  6. /var/mobile/Sites というディレクトリを作り、その中にコンテンツを配置
  7. iPhone / iPod touchを再起動
  8. Safariからhttp://127.0.0.1/アクセスすると、コンテンツが閲覧できるはず。

なおアクセス制限をかけていないので他のマシンからでもアクセスできてしまいます。lighttpd.confファイルでserver.bind = "localhost" を指定すれば、ローカルに対してしかListenしないはずです。

設定ファイル

/etc/lighttpd.conf
server.modules = ( 
        "mod_access",
        "mod_alias",
 )
server.document-root = "/var/mobile/Sites/"
index-file.names = (
    "index.html", "index.htm",
)
mimetype.assign = (
    ".pdf" => "application/pdf",
    ".sig" => "application/pgp-signature",
    ".spl" => "application/futuresplash",
    ".class" => "application/octet-stream",
    ".ps" => "application/postscript",
    ".torrent" => "application/x-bittorrent",
    ".dvi" => "application/x-dvi",
    ".gz" => "application/x-gzip",
    ".pac" => "application/x-ns-proxy-autoconfig",
    ".swf" => "application/x-shockwave-flash",
    ".tar.gz" => "application/x-tgz",
    ".tgz" => "application/x-tgz",
    ".tar" => "application/x-tar",
    ".zip" => "application/zip",
    ".mp3" => "audio/mpeg",
    ".m3u" => "audio/x-mpegurl",
    ".wma" => "audio/x-ms-wma",
    ".wax" => "audio/x-ms-wax",
    ".ogg" => "application/ogg",
    ".wav" => "audio/x-wav",
    ".gif" => "image/gif",
    ".jpg" => "image/jpeg",
    ".jpeg" => "image/jpeg",
    ".png" => "image/png",
    ".xbm" => "image/x-xbitmap",
    ".xpm" => "image/x-xpixmap",
    ".xwd" => "image/x-xwindowdump",
    ".css" => "text/css",
    ".html" => "text/html",
    ".htm" => "text/html",
    ".js" => "text/javascript",
    ".asc" => "text/plain",
    ".c" => "text/plain",
    ".cpp" => "text/plain",
    ".log" => "text/plain",
    ".conf" => "text/plain",
    ".text" => "text/plain",
    ".txt" => "text/plain",
    ".dtd" => "text/xml",
    ".xml" => "text/xml",
    ".mpeg" => "video/mpeg",
    ".mpg" => "video/mpeg",
    ".mov" => "video/quicktime",
    ".qt" => "video/quicktime",
    ".avi" => "video/x-msvideo",
    ".asf" => "video/x-ms-asf",
    ".asx" => "video/x-ms-asf",
    ".wmv" => "video/x-ms-wmv",
    ".bz2" => "application/x-bzip",
    ".tbz" => "application/x-bzip-compressed-tar",
    ".tar.bz2" => "application/x-bzip-compressed-tar"
)
server.port = 80
server.username = "nobody"
server.groupname = "nobody"
/Library/LaunchDaemons/net.lighttpd.lightppd.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">

<dict>
	<key>Label</key>
	<string>net.lighttpd.lightppd</string>
	<key>RunAtLoad</key>
	<true/>
	<key>ProgramArguments</key>
	<array>
		<string>/usr/sbin/lighttpd</string>
		<string>-D</string>
		<string>-f</string>
		<string>/etc/lighttpd.conf</string>
	</array>
</dict>
</plist>

追記2: -D オプション (backgoundに回さない) 追加。launchctl stop net.lighttpd.lightppd で停止できるようにするため。


CGIディレクトリ一覧などの設定方法は、id:NeoCat:20080731 にて。

masahilomasahilo 2008/07/31 01:01 はじめまして。
ローカルでファイルブラウズしたくてGoogle検索していたら、このページにたどり着きました。
大変参考になり、感謝しています。
lighttpdでCGIを動作させようとしているのですが、500 Internal Server Errorとなってしまい、動作させることができません。
もしよろしければCGIを動作させる方法も御指南いただけると幸いです。

NeoCatNeoCat 2008/07/31 06:07 コメントありがとうございます。
http://d.hatena.ne.jp/NeoCat/20080731 にCGIや、ディレクトリブラウズの方法を追記しました。

はてなユーザーのみコメントできます。はてなへログインもしくは新規登録をおこなってください。