iPod touch/2.0以降/lighttpd

最終更新時間:2010年09月10日 23時47分57秒


[iPod][css]iPod touch の iPhone OS 2.0以降で lighttpd を動かし、ローカルをブラウズする為にじたばたした記録。
(Diary/2008-07-28 とか Diary/2008-07-24 にも書いてあるののまとめ & 追記。)

何で lighttpd 入れるん?

色々と App Store でも ビューワ売っていたりするけど、Safari でローカルブラウズが最強だと思う。html doc ppt xls pdf jpg png gif mov mp4 等々... 何でも再生してくれて動作軽快。時々落ちるけど、その内 Apple が何とかしてくれるでしょ。

install

1.1.4までは Apache を使っていたが、2.0 から cydia でパッケージ管理する様になったら cydia には Apache が無い。で、lighttpd を install。
当初、cydia から入れりゃ動くだろと、とりあえず入れたが動かず、汗)。調べたら /etc/lighttpd.conf な設定ファイルが無い... 何度 cydia から install しても無い。動くのか?と、ssh でログインンして lighttpd とかすると返事するんでバイナリは動くぞ、と。こりゃ /etc/lighttpd.conf 書かなきゃ駄目かと調べて書いたのが以下。

lighttpd.conf

# load modules --- dav とか cgi 使う気が無きゃとりあえず必要無い。
# server.modules   = ( "mod_indexfile",
#                                "mod_dirlisting",
#                                "mod_staticfile",
# 							   "mod_webdav" )


# index
server.document-root = "/private/var/mobile/Media/"
dir-listing.external-css = "/style/style.css"
server.dir-listing = "enable"
dir-listing.hide-dotfiles = "enable"
dir-listing.encoding = "utf-8"
index-file.names = (
	"index.html",
    "index.shtml"
)

# mimetype mapping
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",
  ".jar"          =>      "application/x-java-archive",
  ".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",
  ".mp4"          =>      "video/quicktime",
  ".3gp"          =>      "video/quicktime",
  ".mov"          =>      "video/quicktime",
  ".qt"           =>      "video/quicktime",
  ".avi"          =>      "video/quicktime",
  ".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",
  # default mime type
  ""              =>      "application/octet-stream",
 )


server.username = "mobile"
server.groupname = "mobile"

# webdav --- 読み出し問題無い。何でか書込み出来なかったんで停止。
# webdav.activate = "enable"

style.css

html{
-webkit-auto-text-size-adjust: none;
}

body{
  min-height:1273px;
}

body,table,td,.n,.t,a{
  width:980px;
}

*{
  margin:0;
  padding:0;
  font-family: "Arial Unicode MS"; 
  font-weight:bold;
  text-decoration:none;
  background-color:#4b4b4b; /* =.n color */
}

td{
  display:block;
  overflow:hidden;
}


a,.n{
  height:80px;
}

.n{
  height:130px;
  font-size:60px;
  line-height:130px;
  color:#4b4b4b; /* =background-color */
}

a{
  height:130px;
  color:white;
  text-indent:145px;
  text-shadow: 8px 8px 10px rgba(0,0,0,0.8);
  display:block;
  float:left;
  overflow:hidden;
  -webkit-tap-highlight-color:rgba(29,14,252,0.5);
  background-position:left bottom;
  background-repeat:no-repeat;
}

.t{
  margin-top:-35px;
  height:35px;
  font-size:35px;
  line-height:35px;
  text-indent:145px;
  color:#a3a3a3;
  border-bottom:6px solid #5f5f5f;
  background-color:transparent;
}

h2,th,.m,.s,.foot{
  display:none;
}



/* 各種icon */
a{
  background-image:url(icons/def.png);} /* フォルダ */

a[href$="/"]{
  background-image:url(icons/fol.png);} /* フォルダ */

a[href^=".."]{ /* フォルダ上書きでUp */
  text-shadow: 0px -3px 3px black;
  background-image:url(icons/up.png),url(icons/up_back.png);
  background-repeat:no-repeat,repeat;
  border-bottom:6px solid black;
  -webkit-tap-highlight-color:rgba(255,255,255,0.3);
}

a[href$="NewsClip/"]{
  background-image:url(icons/NClip.png);}
}

a[href$=".ai"],a[href$=".AI"]{
  background-image:url(icons/ai.png);}

a[href$=".css"],a[href$=".CSS"]{
  background-image:url(icons/css.png);}

a[href$=".csv"],a[href$=".CSV"]{
  background-image:url(icons/csv.png);}

a[href$=".doc"],a[href$=".DOC"]{
  background-image:url(icons/doc.png);}

a[href$=".eps"],a[href$=".EPS"]{
  background-image:url(icons/eps.png);}

a[href$=".gif"],a[href$=".GIF"]{
  background-image:url(icons/gif.png);}

a[href$=".jpg"],a[href$=".jpeg"],a[href$=".JPG"],a[href$=".JPEG"]{
  background-image:url(icons/jpg.png);}

a[href$=".pdf"],a[href$=".PDF"]{
  background-image:url(icons/pdf.png);}

a[href$=".png"],a[href$=".PNG"]{
  background-image:url(icons/png.png);}

a[href$=".ppt"],a[href$=".PPT"]{
  background-image:url(icons/ppt.png);}

a[href$=".psd"],a[href$=".PSD"]{
  background-image:url(icons/psd.png);}

a[href$=".tif"],a[href$=".tiff"],a[href$=".TIF"],a[href$=".TIFF"]{
  background-image:url(icons/tif.png);}

a[href$=".txt"],a[href$=".text"],a[href$=".TXT"],a[href$=".TEXT"]{
  background-image:url(icons/txt.png);}

a[href$=".xls"],a[href$=".XLS"]{
  background-image:url(icons/xls.png);}

a[href$=".mp4"],a[href$=".mov"],a[href$=".3gp"],a[href$=".MP4"],a[href$=".MOV"],a[href$=".3GP"]{
  background-image:url(icons/mov.png);}

a[href$=".zip"],a[href$="ZIP"]{
  background-image:url(icons/zip.png);}




起動は以下

sudo lighttpd -f /etc/lighttpd.conf

再起動は

sudo killall lighttpd

起動スクリプト

このままじゃ iPod Touch 再起動毎に起動コマンドを打つ必要が有るので、自動で起動する様に /Library/LaunchDaemons へ net.lighttpd.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</string>
	<key>OnDemand</key>
	<false/>
	<key>Program</key>
	<string>/usr/sbin/lighttpd</string>
	<key>ProgramArguments</key>
	<array>
		<string>/usr/sbin/lighttpd</string>
		<string>-f/etc/lighttpd.conf</string>
		<string>-D</string>
	</array>
</dict>
</plist>

BossPrefs で lighttpd の on off

/Applications/BossPrefs.app/services/ へ LIGHTTPD。内容は以下。アイコンは BossPrefs.app 内に最初から有ったんでそれを使う様にした。

/bin/launchctl load -w /Library/LaunchDaemons/net.lighttpd.plist
/bin/launchctl unload -w /Library/LaunchDaemons/net.lighttpd.plist
net.lighttpd.plist
/Applications/BossPrefs.app/lighttpd.png


まとめ

lighttpd.conf やら、スタイルシート・アイコンを以下にまとめて置いておきます。


これを使うと以下の様に Safari で http://localhost/ で、ブラウズ出来る様になる。


iPod touch 8GB

iPod touch 32GB

iPod touch 64GB

お名前: コメント:

trackbackプラグインは存在しません。

最終更新時間:2010年09月10日 23時47分57秒


ヘルプ 検索 ソース Farm 一覧 差分 トップ ログイン