Apache und PHP auf dem iPhone

Sobald mal im Besitz ein „gehacktes“ iPhone’s ist, kann man über den „Installer.app“ zahlreiche weitere Softwarepackete installieren. Darunter auch den Apache WebServer und PHP als Skriptsprache.

Hier nun eine kleine Anleitung:

1. Voraussetzungen
Ein gejailbreaktes iPhone mit SSH-Server (für den Zugriff auf das Dateisystem und die Shell) und installiertem „BSD Subsystem“.

2. Grundinstallation
Zunächst installiert man auf dem iPhone via „Installer.app“ die Pakete „Apache“ und „PHP“. Zum Testen kann man im Safari ja mal http://127.0.0.1 eingeben (localhost geht nicht) oder von einem Mac/PC im gleichen (W)LAN über einen Webbrowser auf die aktuelle IP-Adresse des iPhones (Einstellungen > Wi-Fi > Eigenschaften des aktuell verbundenen WLAN-Netzes) zugreifen.

Der Webserver ist nun also unter http://aktuelleIPAdresseDesiPhones erreichbar. Die Webseiten liegen auf dem iPhone übrigens unter /Library/WebServer/Documents. Die Konfiguration unter /etc/httpd/ bzw. /private/etc/httpd/. Die Logfiles unter /private/log/httpd/ und die Icons unter /usr/share/httpd/icons/. Die Dokumentation theoretisch unter /Library/WebServer/Documents/manual/ (ist aber um Platz zu sparen leer) und CGI-Module werden unter /Library/WebServer/CGI-Executables/ erwartet (auch noch leer).

PHP findet sich auf dem iPhone nun unter /opt/iPhone/.

3. iPhone Apache Webserver konfigurieren
Wie auch sonst üblich muss man nun dem Apache Webserver
via Konfigurationsdatei PHP als Skriptsprache noch beibringen. Hierzu einfach die Datei /etc/httpd/httpd.conf öffnen und die folgenden Zeilen einfügen:

ScriptAlias /php /opt/iphone/bin
AddType application/x-httpd-php .php
Action application/x-httpd-php “/php/php-cgi”

Anschliessend noch die Textdatei /etc/profile öffnen und die Pfadangabe in Zeile 3 um PHP erweitern (sieht dann ungefähr so aus):

PATH = "/bin:/sbin:/usr/bin:/usr/local/bin:/usr/sbin:/opt/iphone/bin"

Jetzt den Webserver auf der Shell des iPhone neu starten (hierzu entweder das via „Installer.app“ installierbare VT100-Terminal benutzen oder vom Mac mittels Terminal und installiertem OpenSSH auf dem iPhone als Root verbinden durch Eingabe von ssh root@AktuelleIpAdresseDesiPhones) :

apachectl restart

Oder einfacher: Das iPhone kurz ausschalten und wieder einschalten.

Jetzt noch eine simple PHP-Testseite auf das iPhone schieben:

phpinfo.php:
<?
phpinfo();
?>

speichern als /Libary/Webserver/Documents/phpinfo.php und im Webbrowser aufrufen.

Glückwunsch…!

Tipp:
Mittels „Installer.app“ kann man auch ein Tool namens „UiCtl“ installieren. Damit kann man sehr einfach die laufenden Daemons / Services auf dem iPhone kontrollieren, also auch den Apache (alias org.apache.httpd). Mittels des Tools „Services“ kann man hingegen sehr einfach gezielt EDGE, BT, WLAN und SSH an/aus schalten.

Tipp:
Die Konfigurationsdateien kann man auch prima hier als ZIP herunterladen.
Den Inhalt von „profile“ schiebt man auf dem iPhone in den Ordner /private/etc/ und die „httpd.conf“ in den Ordner /private/etc/httpd/. Dann das iPhone einmal neu starten – fertig.

10 thoughts on “Apache und PHP auf dem iPhone

  • Hallo,

    ich habe versucht, die beschriebene Vorgehensweise anzuwenden,
    bekomme aber leider nur den PHP-Quelltext angezeigt beim Test
    (die Apache-Start-Webseite ist i.O.).

    Ich habe das richtig gelesen:
    ScriptAlias/php/opt/iphone/bin?

    Wird bei mir (apache configtest) nur akzeptiert, wenn der 2. Ausdruck
    in Hochkommas steht. Fehlt nicht Apache-seitig noch ein Load Module
    oder ähnliches um Apache und PHP zusammen zu bekommen?

    Für einen Tip wäre ich sehr dankbar!

    Viele Grüsse, Michael

  • Moin!
    Danke für die Anleitung – allerdings fehlt zum vollständigen Glück ja in der Regel noch eine MySQL, denn dann könnte man an z.B. eigenes Wiki installieren. Es würde mich interessieren, ob irgend jemand schon an einer entsprechenden Lösung schraubt.

    Viele Grüße,

    Zaphorg

  • Hallo Herr Schmitt !

    Ich komme seit Tagen nicht weiter – mein IPHONE 1.1.4 hat ein jailbreak , aber ich kann den apache und php nicht downloaden…um ihre empfehlung (s.o.) umzusetzen.

    Woran kann das liegen ?

    Queue löschen und clear habe ich alles gemacht …

    DANKE !!!!!

  • Hallo

    @Peter: ich konnte auch erst ne zeit lang php und dann garnichts mehr installen. bei mir lag es an einer vollen partition. die festplatte vom iphone ist in 2 partitionen geteilt und die eine wo alle anwendungen liegen ist recht klein. also du musst irgendwas deinstallen damit das programm BossTool passt. wennde das installiert hast kannste damit ein paar sachen auf die andere platte relocaten und dann gehts wieder. 🙂

    so dann hab ich noch ne frage. also ich bin nach der anleitung vorgegangen und bekomme jetzt bei allen phps aber ein „Bad Request“-Fehler.
    Jemand ne Idee zur Lösung?

    MfG

  • aah ok konnte selbst bugfixen.
    also wichtig ist bei der zeile:
    Action application/x-httpd-php “/php/php-cgi”
    NICHT diese lustig schrägen anführungsstriche mitkopiern sondern diese durch normale anführungsstriche zu ersetzen:
    Action application/x-httpd-php „/php/php-cgi“
    dann gehts. 🙂

  • hm liegt also an diesem blog bzw dessen stylesheet. also kann das nicht vormachen aber eben normale anführungsstriche nehm dann gehts^^

  • Hallo,
    danke für die Anleitung hat echt Super funktioniert.Apache und php laufen Super.
    Allerdings ist mir aufgefallen das eine HTML Datei vom Apache als Index sofort erkannt und auch angezeigt wird. Leider funktioniert das mit einer Index.php nicht.
    Ist es möglich in der httpd conf Einstellungen hierfür vorzunehmen? Weil schön ist ein Apache mit php auf dem Iphone wohl aber nicht wirklich nutzbar wenn hinter localhost immer Index.php eingegeben werden muss. Mfg Patrick Blom

  • Eine Anfängerfrage:

    ich habe PHP und Apache (und Perl) installiert.

    Wie kann ich die etc/profile editieren ?

    Hatte mit TextEdit keinen Erfolg (lesen ja, schreiben nein).

    Konnte den Schreibzugriff mit chmod 777 profile nicht ändern .

    Was muss ich machen ?

  • Guten Tag,

    wie kann ich denn unter PHP die Sockets Erweiterung auf dem Iphone aktivieren?
    Wäre sehr dankbar wenn mir da einer helfen könnte!
    Alex

  • Alles funktiniert ausser mail().
    Hat jemand erfolgreiche Erfahrungen?
    Besten Dank
    Rolf

Comments are closed.