{"id":658,"date":"2012-04-21T20:52:11","date_gmt":"2012-04-21T18:52:11","guid":{"rendered":"http:\/\/blog.herrwolff.org\/?p=658"},"modified":"2012-04-21T20:52:11","modified_gmt":"2012-04-21T18:52:11","slug":"diy-appletv-2-als-webserver","status":"publish","type":"post","link":"http:\/\/blog.herrwolff.org\/?p=658","title":{"rendered":"DIY &#8212; AppleTV 2 als Webserver"},"content":{"rendered":"<p>Auf der Suche nach einem PC der f\u00fcr einen f\u00fcr einen privaten Webserver geeignet ist (niedrige Energiekosten und geringer Kaufpreis) bin ich bei <a href=\"http:\/\/heise.de\" title=\"heise online\" target=\"_blank\">heise.de<\/a> den Artikel <a href=\"http:\/\/heise.de\/-1274311\" title=\"Provider nutzt Apple TV 2 als Webserver\" target=\"_blank\">Provider nutzt Apple TV 2 als Webserver<\/a> gefunden. Da der AppleTV (2. Generation) nur 119Euro kostet, habe ich mir gleich mal einen gekauft.<br \/>\nIm heise.de-Artikle fidet sich folgende Anleitung &#8222;<a href=\"http:\/\/www.macminivault.com\/atv-webserver\/\" title=\"Apple TV Webserver\" target=\"_blank\">Wer das Ganze nachbauen will, findet hier weitere Infos.<\/a>&#8222;.<br \/>\nEs m\u00fcssen folgende Schritte vollzogen werden:<\/p>\n<ol>\n<li> AppleTV jailbreaken <\/li>\n<li> Konfiguration der LAN oder WLAN Verbindung <\/li>\n<li> Installation des Webservers und der zus\u00e4tzlich ben\u00f6tigten Software (PHP, Datenbank)<\/li>\n<\/ol>\n<h2>  AppleTV jailbreaken <\/h2>\n<p>Da ich noch nie ein IOS-Ger\u00e4t gejailbreakt habe m\u00fcsste ich mich zuerst \u00fcber die Jailbreak Thematik informieren was leider gar nicht so einfach ist, da man sehr viele unterschiedliche Informationen dazu im Netz findet.<br \/>\nEine Web-Recherche hat folgende M\u00f6glichkeiten ergeben: <\/p>\n<ul>\n<li><a href=\"http:\/\/blog4i.de\/2011\/04\/anleitung-appletv-2g-jailbreak-unter-ios-4-3-mit-pwnage\/\" title=\"Anleitung: AppleTv 2G Jailbreak unter iOS 4.3 mit Pwnage\" target=\"_blank\">Anleitung: AppleTv 2G Jailbreak unter iOS 4.3 mit Pwnage<\/a><\/li>\n<li><a href=\"http:\/\/support.firecore.com\/entries\/387605\" target=\"_blank\">Seas0nPass supports a untethered jailbreak of the latest 4.4.4<\/a><\/li>\n<\/ul>\n<p>Nach l\u00e4ngerem Probieren hat bei mir hat die Methode mit <a href=\"http:\/\/files.firecore.com\/SP\/Seas0nPass.zip\" target=\"_blank\">Seas0nPass<\/a> funktioniert. Das Tool <a href=\"http:\/\/dl.crzz.co\/PwnageTool_4.3.dmg\" title=\"Pwnage 4.3 Download \" target=\"_blank\">Pwnage 4.3<\/a> w\u00e4re mir pers\u00f6nlich lieber gewesen, da ich gleich die ben\u00f6tigten Pakete anhand einer Auswahl installieren konnte, leider hat aber der Jailbreak nicht funktioniert. Ich verzichte hier auf eine Beschreibung, da zum einem in den beiden Links das Vorgehen genau erkl\u00e4rt wird und zum anderen, da sich das Vorgehen beim Jailbreaken mit jeder neuen IOS-Version \u00e4ndern kann. Es bleibt einem nichts anderes \u00fcbrig als ich selbst in das Web zu st\u00fcrzen und eine M\u00f6glichkeit die bei einem funktioniert zu suchen.<\/p>\n<h2> Konfiguration des AppleTVs als Webserver <\/h2>\n<p>Von der Seite <a href=\"http:\/\/technoids.com\/AppleTV.html\" title=\"How To Turn an Apple\u00ae TV 2G into a 24\/7 Web  Server\" target=\"_blank\">How To Turn an Apple\u00ae TV 2G into a 24\/7 Web  Server<\/a> kann man sich ein Shellscript herunterladen, das den gesamten Webserver installiert. Ich m\u00f6chte im Folgenden trotzdem die einzelnen Schritte beschreiben, da man ja eigentlich nicht viel lernt, wenn man ein fertiges Script ausf\u00fchrt. Folgt hier eine Anleitung es per Hand zu machen.<\/p>\n<ol>\n<li> Installation der ben\u00f6tigten Software: dazu muss man sich mittels der Terminal.app und des Befehls ssh auf die Shell des AppleTV schalten: <pre class=\"brush: bash; title: ; notranslate\" title=\"\"> ssh root@ipappletv <\/pre> mit Passwort <em>alpine<\/em> und anschlie\u00dfend folgende Befehle eingeben:<\/li>\n<p><pre class=\"brush: bash; title: ; notranslate\" title=\"\">&lt;br \/&gt;\napt-get -y install top&lt;br \/&gt;\napt-get -y install vim&lt;br \/&gt;\napt-get -y install php&lt;br \/&gt;\napt-get -y install lighttpd&lt;br \/&gt;\napt-get update&lt;br \/&gt;\napt-get update&lt;br \/&gt;\napt-get -f -y upgrade&lt;br \/&gt;\n<\/pre><br \/>\nEs werden folgende Softwarepakete installiert:<\/p>\n<ul>\n<li><strong>top<\/strong> ist ein Befehl. der in den meisten Unix-\u00e4hnlichen Betriebssystemen eine st\u00e4ndig aktualisierte Liste der aktuell laufenden Prozesse des Systems ausgibt. Dabei zeigt top auch die Auslastung der CPU, Speicherverbrauch, sowie etliche andere Informationen an.<\/li>\n<li><strong>vim<\/strong> ist eine Weiterentwicklung des Texteditors vi. Das freie Open-Source-Programm wurde 1991 von Bram Moolenaar ver\u00f6ffentlicht. Seitdem wird der Editor aktiv weiterentwickelt. Wie vi zeichnet sich Vim durch seine verschiedenen Betriebs-Modi aus, w\u00e4hrend viele andere gebr\u00e4uchliche Editoren nur einen kombinierten Modus f\u00fcr Eingabe und Befehle kennen, in dem Befehle \u00fcber Tastenkombinationen und grafische Oberfl\u00e4chen ausgef\u00fchrt werden. Alternativ kann auch <strong>nano<\/strong> installiert werden.<\/li>\n<li><strong>php<\/strong> ist eine Skriptsprache, die haupts\u00e4chlich zur Erstellung dynamischer Webseiten oder Webanwendungen verwendet wird.<\/li>\n<li><strong>lighttpd<\/strong> (zumeist gesprochen als Lighty) ist ein von Jan Kneschke entwickelter freier Webserver. Er implementiert alle wichtigen Funktionen eines Webservers und kann, \u00e4hnlich wie Apache, durch Module erweitert werden.<\/li>\n<\/ul>\n<li> Jetzt m\u00fcssen noch ein paar Verzeichnisse erstellt und die Zugriffsrechte gesetzt werden. Im Verzeichnis <em>\/private\/var\/www<\/em> werden die Daten gespeichert, die der Webserver zur Verf\u00fcgung stellen wird. Das Verzeichnis <em>\/var\/log\/lighttpd<\/em> dient zum loggen von Fehlern und Zugangsdaten des Webservers. <\/li>\n<p><pre class=\"brush: bash; title: ; notranslate\" title=\"\">&lt;br \/&gt;\nmkdir \/private\/var\/www&lt;br \/&gt;\nchown root:wheel \/private\/var\/www&lt;br \/&gt;\nmkdir \/var\/log\/lighttpd&lt;br \/&gt;\nchown root:wheel \/var\/log\/lighttpd&lt;br \/&gt;\n<\/pre><\/p>\n<ul>\n<li> <strong>mkdir<\/strong> Unix-Befehl der ein Verzeichnis erstellt.<\/li>\n<li> <strong>chown root:wheel<\/strong> Unix-Befehl der die Eigentumsrechte f\u00fcr den Benutzer <strong>root<\/strong> aus der Gruppe <strong>wheel<\/strong> setzt.<\/li>\n<\/ul>\n<li> Die Konfiguration von lighttpd ist in einer Datei <em>lighttpd.conf<\/em> zusammengefasst, die im Verzeichnis <em>\/private\/etc\/<\/em> gespeichert werden muss.<\/li>\n<p>[js_markieren]<\/p>\n<div id=\"lighttpd.conf\" style=\"overflow:auto;height:200px;\">\n<input type=\"button\" value=\"Markiere Code\" onClick=\"fnSelect('lighttpd.conf')\"><\/p>\n<pre>\r\nserver.document-root = \"\/private\/var\/www\/\"\r\n\r\nserver.port = 80\r\n# server.username = \"lighttpd\"\r\n# server.groupname = \"lighttpd\"\r\n# richtige IP des Webservers eintragen\r\nserver.bind                = \"192.168.0.150\" \r\nserver.tag =\"lighttpd\"\r\n\r\nserver.errorlog            = \"\/var\/log\/lighttpd\/error.log\"\r\naccesslog.filename         = \"\/var\/log\/lighttpd\/access.log\"\r\n\r\nserver.modules              = (\r\n            \"mod_access\",\r\n            \"mod_accesslog\",\r\n\t    \"mod_fastcgi\",\r\n            \"mod_rewrite\",\r\n\t    \"mod_auth\"\r\n)\r\n\r\n# mimetype mapping\r\nmimetype.assign             = (\r\n  \".pdf\"          =>      \"application\/pdf\",\r\n  \".sig\"          =>      \"application\/pgp-signature\",\r\n  \".spl\"          =>      \"application\/futuresplash\",\r\n  \".class\"        =>      \"application\/octet-stream\",\r\n  \".ps\"           =>      \"application\/postscript\",\r\n  \".torrent\"      =>      \"application\/x-bittorrent\",\r\n  \".dvi\"          =>      \"application\/x-dvi\",\r\n  \".gz\"           =>      \"application\/x-gzip\",\r\n  \".pac\"          =>      \"application\/x-ns-proxy-autoconfig\",\r\n  \".swf\"          =>      \"application\/x-shockwave-flash\",\r\n  \".tar.gz\"       =>      \"application\/x-tgz\",\r\n  \".tgz\"          =>      \"application\/x-tgz\",\r\n  \".tar\"          =>      \"application\/x-tar\",\r\n  \".zip\"          =>      \"application\/zip\",\r\n  \".mp3\"          =>      \"audio\/mpeg\",\r\n  \".m3u\"          =>      \"audio\/x-mpegurl\",\r\n  \".wma\"          =>      \"audio\/x-ms-wma\",\r\n  \".wax\"          =>      \"audio\/x-ms-wax\",\r\n  \".ogg\"          =>      \"audio\/x-wav\",\r\n  \".wav\"          =>      \"audio\/x-wav\",\r\n  \".gif\"          =>      \"image\/gif\",\r\n  \".jpg\"          =>      \"image\/jpeg\",\r\n  \".jpeg\"         =>      \"image\/jpeg\",\r\n  \".png\"          =>      \"image\/png\",\r\n  \".xbm\"          =>      \"image\/x-xbitmap\",\r\n  \".xpm\"          =>      \"image\/x-xpixmap\",\r\n  \".xwd\"          =>      \"image\/x-xwindowdump\",\r\n  \".css\"          =>      \"text\/css\",\r\n  \".html\"         =>      \"text\/html\",\r\n  \".htm\"          =>      \"text\/html\",\r\n  \".js\"           =>      \"text\/javascript\",\r\n  \".asc\"          =>      \"text\/plain\",\r\n  \".c\"            =>      \"text\/plain\",\r\n  \".conf\"         =>      \"text\/plain\",\r\n  \".text\"         =>      \"text\/plain\",\r\n  \".txt\"          =>      \"text\/plain\",\r\n  \".dtd\"          =>      \"text\/xml\",\r\n  \".xml\"          =>      \"text\/xml\",\r\n  \".mpeg\"         =>      \"video\/mpeg\",\r\n  \".mpg\"          =>      \"video\/mpeg\",\r\n  \".mov\"          =>      \"video\/quicktime\",\r\n  \".qt\"           =>      \"video\/quicktime\",\r\n  \".avi\"          =>      \"video\/x-msvideo\",\r\n  \".asf\"          =>      \"video\/x-ms-asf\",\r\n  \".asx\"          =>      \"video\/x-ms-asf\",\r\n  \".wmv\"          =>      \"video\/x-ms-wmv\",\r\n  \".bz2\"          =>      \"application\/x-bzip\",\r\n  \".tbz\"          =>      \"application\/x-bzip-compressed-tar\",\r\n  \".tar.bz2\"      =>      \"application\/x-bzip-compressed-tar\" \r\n )\r\nindex-file.names = ( \"index.html\", \"index.php\" )\r\n<\/pre>\n<\/div>\n<li>Mit dem Befehl <code lang=\"bash\"> lighttpd-angel -f \/etc\/lighttpd.conf<\/code> wird der Webserver gestartet.<\/li>\n<\/ol>\n<h2>Hintergrund Informationen <\/h2>\n<p>Auf den folgenden Seiten findet man zus\u00e4tzliche Informationen:<\/p>\n<p><a href=\"http:\/\/www.cyberciti.biz\/tips\/installing-and-configuring-lighttpd-webserver-howto.html\" title=\"Installing and configuring lighttpd webserver \u2013 HOWTO\" target=\"_blank\">Installing and configuring lighttpd webserver \u2013 HOWTO<\/a><\/p>\n<p><a href=\"http:\/\/www.rootninja.com\/ldap-lighttpd-easy-setup\/\" title=\"LDAP + Lighttpd :: Easy setup\" target=\"_blank\">LDAP + Lighttpd :: Easy setup<\/a><\/p>\n<p><a href=\"http:\/\/atv.macminivault.com\/\" title=\"Apple TV Webserver | Mac Mini Vault \" target=\"_blank\">Apple TV Webserver | Mac Mini Vault <\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Auf der Suche nach einem PC der f\u00fcr einen f\u00fcr einen privaten Webserver geeignet ist (niedrige Energiekosten und geringer Kaufpreis) bin ich bei heise.de den Artikel Provider nutzt Apple TV 2 als Webserver gefunden. Da der AppleTV (2. Generation) nur 119Euro kostet, habe ich mir gleich mal einen gekauft. Im heise.de-Artikle fidet sich folgende Anleitung &hellip; <a href=\"http:\/\/blog.herrwolff.org\/?p=658\" class=\"more-link\"><span class=\"screen-reader-text\">DIY &#8212; AppleTV 2 als Webserver<\/span> weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"spay_email":"","jetpack_publicize_message":""},"categories":[17,5,13,32,16],"tags":[],"jetpack_featured_media_url":"","jetpack_publicize_connections":[],"jetpack_shortlink":"https:\/\/wp.me\/p1ZaWF-aC","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"http:\/\/blog.herrwolff.org\/index.php?rest_route=\/wp\/v2\/posts\/658"}],"collection":[{"href":"http:\/\/blog.herrwolff.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.herrwolff.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.herrwolff.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.herrwolff.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=658"}],"version-history":[{"count":59,"href":"http:\/\/blog.herrwolff.org\/index.php?rest_route=\/wp\/v2\/posts\/658\/revisions"}],"predecessor-version":[{"id":796,"href":"http:\/\/blog.herrwolff.org\/index.php?rest_route=\/wp\/v2\/posts\/658\/revisions\/796"}],"wp:attachment":[{"href":"http:\/\/blog.herrwolff.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=658"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.herrwolff.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=658"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.herrwolff.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=658"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}