.titleBar { margin-bottom: 5px!important; }

Apache 1.3.37 + PHP 5.2.2 CGI + More

Dieses Thema im Forum "FRITZ!Box Fon: Modifikationen" wurde erstellt von cpq, 27 Jan. 2007.

  1. cpq

    cpq Neuer User

    Registriert seit:
    2 Jan. 2007
    Beiträge:
    25
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    #1 cpq, 27 Jan. 2007
    Zuletzt bearbeitet: 9 Mai 2007
    Hier die aktuellste Apache und PHP Version für FritzBoxen mit 2.6er Kernel, statisch kompiliert. Ein DS-Mod ist zum Betrieb nicht erforderlich. Wer Apache und PHP-Versionen für 2.4er Kernel bzw. libs sucht, sei gleich an diesen Post von kriegaex verwiesen.

    Dieser Post hat einmal ganz klein angefangen und ist mittlerweile ziemlich gewachsen, so dass eine Neustrukturierung nötig wurde.

    Die folgenden Dateien stehen derzeit zum Download bereit:

    • *.tar.bz2
      Diese Archive enthalten ausführbare Dateien. Wer nur daran interessiert ist, möglichst schnell eine lauffähige Version zu erhalten, für den reicht es, diese Datei herunterzuladen.
    • *-compile.zip
      Generell habe ich alle Binaries mit Quellcode und Bauanleitung gepostet, daher gibt es zu jedem .tar.bz2 Archiv mit den Binärdateien eine -compile.zip Datei, die ein Skript zum automatischen Bauen enthält. Im Idealfall (d.h. auf meinem Linux) genügt es, das Skript zu starten und man erhält nach einiger Zeit ein fertiges .tar.bz2 Paket mit allem was man braucht. Originalpakete mit Quellcode werden automatisch heruntergeladen.
    • apache-1.3.37-mipsel.tar.bz2
      Dies ist die einfachste und kleinste Version des Apache. Für den normalen Betrieb genügt es, die Dateien apache und apache.conf auf eure Box zu spielen und apache.conf auf euer System anzupassen. Wie das geht könnt ihr unter anderem auf der Apache Website nachlesen. Beim Aufruf des Apache muss immer der Parameter -f /..../apache.conf mit dem absoluten Pfad zur Konfigurationsdatei angegeben werden. Da der Standard-Webserver der Box alle 80er Ports belegt, sollte der Apache auf einem anderen Port betrieben werden. Man kann ihn aber nach außen hin trotzdem auf Port 80 mittels der Portweiterleitung einrichten. Dateigröße 545720 bytes.
    • apache-1.3.37-modssl-mipsel.tar.bz2
      Wer Seiten mit https hosten möchte, kann diese Version des Apache verwenen. Das Einrichten ist etwas komplizierter als bei der Version ohne SSL und der Arbeitsspeicherbedarf kann sich mehr als verdoppeln. Läuft aber trotzem stabil. Größe: 1891744 bytes. Die Geschwindigkeit ist auch bei HTTPS recht flott, z.B. eine statische Seite mit 25 Bildern baut sich im Browser innerhalb von weniger als 1 Sekunde komplett auf.
    • apache-1.3.37-ssl-mipsel.tar.bz2
      Eine alternative SSL Erweiterung für apache, die vermutlich etwas weniger Resourcen belegt. Läuft aber nicht auf allen 2.6er Kernels.
    • apache-1.3.37-mipsel-compile.zip
      Wer gerne selber bauen möchte, findet hier alles was er braucht als Skript mit patches etc. Für die SSL-Versionen braucht man noch zusätzlich das Kompilierskript von OpenSSL oder die OpenSSL Binaries.
    • php-5.2.2-mipsel.tar.bz2
      Dies ist die Minimalversion von PHP 5.2.2, sie bringt allerdings immer noch 2947808 bytes auf die Waage. Zum Verwenden mit Apache einfach in das cgi-bin Verzeichnis kopieren, und die apache.conf Datei wie auf der PHP Website beschrieben erweitern.
    • php-5.2.2-libxml-zlib-sqlite-mipsel.tar.bz2
      Dies ist noch lange nicht die Maximalversion, aber mit den enthaltenen Paketen trotzdem schon 5243588 bytes groß.
    • php-5.2.2-mipsel-compile.zip
      Skript zum Kompilieren von PHP. Je nach Funktionsumfang der noch dazugelinkt werden soll braucht ihr noch weitere Kompilierskripte bzw. Bibliotheken aus dem Anhang.
    • httpd-2.2.4-mipsel.tar.bz2
      Dies ist ein lauffähiger Apache aus dem 2.2er Zweig. Da er etwas größer ist als der 1.3er und sonst für die meisten Anwendungen auf der Box keinen zusätzlichen Vorteil bieten dürfte, macht es für die Meisten wohl mehr Sinn, die 1.3er Version zu verwenden.
    • httpd-2.2.4-mipsel-compile.zip
      Enthält alle Patches zum automatischen Bauen einer lauffähigen Version.
    • mini_httpd-1.19-mipsel.tar.bz2
      Einer der kleinsten (51568 bytes) Webserver für die Box. Wer wenig freien Speicher hat, oder Platz in der Firmware sparen will ist hiermit richtig bedient. Brauche noch Rückmeldungen bzgl. Stabilität und Kompatibilität mit PHP!
    • mini_httpd-1.19-ssl-mipsel.tar.bz2
      Statisch gelinkt mit OpenSSL ist der kleine plötzlich 1171384 bytes groß, was aber immer noch deutlich kleiner ist als der Apache mit mod_ssl. Bis jetzt liegen noch keine Erfahrungsberichte vor. Wenn ihr diese Version einsetzt, dann meldet euch!
    • mini_httpd-1.19-mipsel-compile.zip
      Für alle, die den Kleinen selber bauen wollen. Evt wird noch die OpenSSL library gebraucht.
    • thttpd-2.25b-mipsel.tar.bz2
      Ein weiteres Mitglied in der Webserver-Sammlung. Recht kompakt mit 99376 bytes, soll es aber in bezüglich Leistung mit den ganz großen aufnehmen können. Siehe Homepage. Bis jetzt noch kein Feedback.
    • thttpd-2.25b-mipsel-compile.zip
      Der Vollständigkeit halber die Bauanleitung.
    • apache-autostart.zip
      Beispiel zum automatischen Laden des Apache (oder eines anderen Programmes) beim Booten der Box.
    • Bibliotheken:
      • openssl-0.9.8e-mipsel.tar.bz2
        Wird für alle https Webservr gebraucht.
      • openssl-0.9.8e-mipsel-compile.zip
        Wer alles selber bauen will, der legt einfach dieses Skript in den selben Pfad wie das Skript des SSL Webservers und startet das Letztere.
      • zlib-1.2.3-mipsel.tar.bz2
        Ermöglicht Kompression für PHP.
      • zlib-1.2.3-mipsel-compile.zip
      • glib-2.12.12-mipsel.tar.bz2
      • glib-2.12.12-mipsel-compile.zip
      • libpng-1.2.16-mipsel.tar.bz2
      • libpng-1.2.16-mipsel-compile.zip
      • libiconv-1.11-mipsel.tar.bz2
      • libiconv-1.11-mipsel-compile.zip
      • gettext-0.16-mipsel.tar.bz2
      • gettext-0.16-mipsel-compile.zip
      • freetype-2.3.4-mipsel.tar.bz2
      • freetype-2.3.4-mipsel-compile.zip

    ... wenn der Apache nicht läuft:
    Bitte zuerst einen Blick in /logs/error.log werfen und ggf die letzten Zeilen mit einer genauen Fehlerbeschreibung posten. Nicht vergessen: welche Firmware/Box/Kernelversion ihr verwendet!
    Wenn ausschließlich php nicht funktioniert, zunaechst die cgi-bin/php in der shell aufrufen: ./php -h; wird in diesem Fall kein Hilfetext angezeigt, so hat der Fehler nichts mit dem Apache zu tun. Stattdessen liegt ein grundlegendes Problem vor, z.B. fehlende/falsche Bibliotheken für php.​
     

    Anhänge:

  2. luckyfritz

    luckyfritz Neuer User

    Registriert seit:
    4 Apr. 2007
    Beiträge:
    2
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Beruf:
    Softwareentwickler
    30 Minuten nach lesen liefs auf meiner 7170, praktisch out of the box.
    Saubere Lösung. Danke!
     
  3. holofox

    holofox Neuer User

    Registriert seit:
    6 Apr. 2007
    Beiträge:
    113
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    BW
    Habe auf meiner 7170 leider nur den apache zum laufen gebracht. Die phpinfo.php erzeugt bei mir einen Internal Server Error :-(

    Auszug aus der error.log:
    php: can't load library 'libm.so.0'
    [Fri Apr 6 22:51:12 2007] [error] [client 192.168.0.28] Premature end of script headers: /var/media/ftp/StorenGo-Partition-0-1/apache-1.3/cgi-bin/php

    @luckyfritz
    Irgendwelche mods installiert, welche die "libm.so.0" mitbringen?

    Gruss,
    Sepp
     
  4. holofox

    holofox Neuer User

    Registriert seit:
    6 Apr. 2007
    Beiträge:
    113
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    BW
    Mit Kernel 2.6.x funktioniert es. Die aktuelle Firmware 29.04.29 beinhaltet die 'libm.so.0'.
    Werde versuchen PHP mit IMAP und MySQL zu kompilieren.

    Gruss,
    Sepp
     
  5. milkpirate

    milkpirate Neuer User

    Registriert seit:
    11 Juli 2006
    Beiträge:
    136
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    wenn ich ./apache ausführe er scheint es nicht bei ps... :-(
    und http zugriff is auch nicht...
     
  6. luckyfritz

    luckyfritz Neuer User

    Registriert seit:
    4 Apr. 2007
    Beiträge:
    2
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Beruf:
    Softwareentwickler
    probier mal:
    ./apache -f conf/apache.conf
     
  7. milkpirate

    milkpirate Neuer User

    Registriert seit:
    11 Juli 2006
    Beiträge:
    136
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    hm.. ok funktioniert auch nicht...
    ach und vll noch irgendwelche user vorschläge ?
     
  8. cpq

    cpq Neuer User

    Registriert seit:
    2 Jan. 2007
    Beiträge:
    25
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    pirat: hast du die 2.4er Version verwendet? Wenn ja, wuerde ich erst mal die 1.3er probieren, da diese viel besser mit relativen Pfaden zurecht kommt. Ansonsten probier mal alle Aufrufe mit absoluten Pfaden und verwende auch in der .conf datei nur absolute pfade.
    Wenn der apache nicht will, dann schau mal zuallererst ins error log.
     
  9. holofox

    holofox Neuer User

    Registriert seit:
    6 Apr. 2007
    Beiträge:
    113
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    BW
    Hatte das gleiche Problem. Fehler lag in der apache.conf. Name des USB Devices stimmte nicht.
     
  10. milkpirate

    milkpirate Neuer User

    Registriert seit:
    11 Juli 2006
    Beiträge:
    136
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    #10 milkpirate, 11 Apr. 2007
    Zuletzt bearbeitet: 11 Apr. 2007
    ok also das is meine error.log:

    Code:
    [Wed Apr 11 22:58:03 2007] [notice] Apache/1.3.37 (Unix) configured -- resuming normal operations
    [Wed Apr 11 22:58:03 2007] [notice] Accept mutex: sysvsem (Default: sysvsem)
    [Wed Apr 11 22:58:03 2007] [alert] (2)No such file or directory: getpwuid: couldn't determine user name from uid 4294967295, you probably need to modify the User directive
    [Wed Apr 11 22:58:03 2007] [alert] (2)No such file or directory: getpwuid: couldn't determine user name from uid 4294967295, you probably need to modify the User directive
    [Wed Apr 11 22:58:04 2007] [alert] Child 634 returned a Fatal error... \nApache is exiting!
    
    also ich entnehme dem das er hauptsächlich ein problem mit dem user hat...
    ich hab den part in der config so:

    Code:
    #User ftpuser
    #Group ftpusers
    
    wenn ich diese zeilen uncomment dann:

    Code:
    # ./apache
    apache: bad user name ftpuser
    
    und wenn die zeile:

    Code:
    ftpuser:x:0:0:ftpusers:/:/
    
    in /var/tmp/passwd und:

    Code:
    User ftpuser
    Group ftpusers
    
    in der config dann:

    Code:
    # ./apache
    Error:  Apache has not been designed to serve pages while
            running as root.  There are known race conditions that
            will allow any local user to read any file on the system.
            If you still desire to serve pages as root then
            add -DBIG_SECURITY_HOLE to the EXTRA_CFLAGS line in your
            src/Configuration file and rebuild the server.  It is
            strongly suggested that you instead modify the User
            directive in your httpd.conf file to list a non-root
            user.
    #
    
    ftpuser ist doch garnicht in der root group oder ? :confused:
    ich mein... ahhh ! crash-kurs im user anlegen ?

    ach ja bei manchen sache nzickt er rum.. grade wenn ich absolute paths mach...
    ich glaub bei der pid oder so... irgendwas hat er da nicht gemacht...
     
  11. cpq

    cpq Neuer User

    Registriert seit:
    2 Jan. 2007
    Beiträge:
    25
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Nun, bei mir funktioniert das Folgende ohne Änderung der passwd und group:
    apache.conf:
    User ftpuser
    Group root

    läuft es damit, kannst du noch nach Belieben anderen benutzer und gruppe in passwd und group eintragen, allerdings musst du dies bei jedem neustart der Box tun (skript!) und bei einem vFAT dateisystem ausserdem noch die UID beim mount setzen, da defaultmaessig ftpuser (1000) verwendet wird.

    leider hat die original Box kein tool zum Anlegen von Benutzern (passworthashing), aber es gibt busybox varianten die useradd unterstützen.
     
  12. milkpirate

    milkpirate Neuer User

    Registriert seit:
    11 Juli 2006
    Beiträge:
    136
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    ok settings geänder (passwd zeile entfernt / user in config geändert):

    Code:
    # ./apache
    apache: bad user name ftpuser
    
    wo wir grade bei busybox sind hat jem. nen link zu der mit allen gänigen befehle wie z.b. die swap befehle loseup usw. zur hand ? ich dächte hier http://www.spblinux.de/fbox/ gäbe es was aber neuerdings prompt eine authenifizierung...
     
  13. u.g

    u.g Aktives Mitglied

    Registriert seit:
    27 März 2005
    Beiträge:
    1,398
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    lass "www." weg, dann gehts ...
     
  14. cpq

    cpq Neuer User

    Registriert seit:
    2 Jan. 2007
    Beiträge:
    25
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    #14 cpq, 12 Apr. 2007
    Zuletzt bearbeitet: 12 Apr. 2007
    Mit folgender Konfiguration und Berechtigungen funktioniert 1.3 auf USB-Festplatte an 7170:
    Code:
    # cat /etc/passwd
    root:x:0:0:root:/:/bin/sh
    ftpuser:any:1000:0:ftp user:/var/media/ftp:/bin/sh
    
    # cat /etc/group
    root:x:0:
    
    # mount|grep /var/media/ftp
    /dev/sda1 on /var/media/ftp/USBMassStorageDevice-Partition-0-1 type vfat (rw,nodiratime,uid=1000,fmask=0022,dmask=0022,codepage=cp437,iocharset=iso8859-1)
    
    # ps w|grep apache
     1259 root        552 S   /var/media/ftp/USBMassStorageDevice-Partition-0-1/FritzBox/apache-1.3.37/apache -f /var/media/ftp/USBMassS
     1263 ftpuser     780 S   /var/media/ftp/USBMassStorageDevice-Partition-0-1/FritzBox/apache-1.3.37/apache -f /var/media/ftp/USBMassS
     1264 ftpuser     792 S   /var/media/ftp/USBMassStorageDevice-Partition-0-1/FritzBox/apache-1.3.37/apache -f /var/media/ftp/USBMassS
     1839 ftpuser     768 S   /var/media/ftp/USBMassStorageDevice-Partition-0-1/FritzBox/apache-1.3.37/apache -f /var/media/ftp/USBMassS
     3374 ftpuser     760 S   /var/media/ftp/USBMassStorageDevice-Partition-0-1/FritzBox/apache-1.3.37/apache -f /var/media/ftp/USBMassS
     3375 ftpuser     744 S   /var/media/ftp/USBMassStorageDevice-Partition-0-1/FritzBox/apache-1.3.37/apache -f /var/media/ftp/USBMassS
    
    # cd /var/media/ftp/USBMassStorageDevice-Partition-0-1/FritzBox/apache-1.3.37/
    # ls -l
    -rwxr-xr-x    1 ftpuser  root       683496 Feb 12 12:56 apache
    drwxr-xr-x    2 ftpuser  root         8192 Feb 19 14:48 cgi-bin
    drwxr-xr-x    2 ftpuser  root         8192 Feb 21 16:56 conf
    drwxr-xr-x    2 ftpuser  root         8192 Apr  1 13:49 logs
    
    # grep -E "^User|^Group" conf/apache.conf
    User ftpuser
    Group root
    
    Dabei sind root und ftpuser sowie die root gruppe die Standardeinträge einer unmodifizierten 7170.

    Milchpirat: ich denke das Hauptproblem warum ftpuser bei dir nicht akzeptiert wurde liegt daran, dass du ihm die uid 0 (wie root) gegeben hast.
     
  15. milkpirate

    milkpirate Neuer User

    Registriert seit:
    11 Juli 2006
    Beiträge:
    136
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    ok... apache läuft mit folgenden configs:

    apache.conf
    Code:
    User ftpuser
    Group ftpusers
    
    passwd
    Code:
    ftpuser:x:500:1000:ftp user:/var/apache:/bin/sh
    
    group
    Code:
    ftpusers:x:1000:ftpuser
    
    shadow
    Code:
    ftpuser::12332:0:99999:7:::
    
    so nächstes problem: ihm fehlt die libm.so.0 beim ausführen von php
     
  16. holofox

    holofox Neuer User

    Registriert seit:
    6 Apr. 2007
    Beiträge:
    113
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    BW
    Die libm.so.0 ist beim 2.4.x Kernel nicht dabei. Nimm die aktuelle AVM Firmware 29.04.29. Diese basiert auf dem 2.6.x Kernel. Die Lib ist da dabei, hat bei mir einwandfrei funktioniert (ohne irgendwelche Mods).
     
  17. milkpirate

    milkpirate Neuer User

    Registriert seit:
    11 Juli 2006
    Beiträge:
    136
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    ach das ganze paket ist and die 7170 gebunden ? hm.. ok... dann is klar das ich probleme mit meiner fbf fon wlan hab...
     
  18. holofox

    holofox Neuer User

    Registriert seit:
    6 Apr. 2007
    Beiträge:
    113
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    BW
    Nicht wirklich. Das Paket wurde nur unter einem Linux Kernel 2.6.x kompiliert.
    Welche FritzBox mit welcher Firmware hast du?
     
  19. milkpirate

    milkpirate Neuer User

    Registriert seit:
    11 Juli 2006
    Beiträge:
    136
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    FRITZ!Box Fon WLAN, Firmware-Version 08.04.27
     
  20. holofox

    holofox Neuer User

    Registriert seit:
    6 Apr. 2007
    Beiträge:
    113
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    BW
    Hmm.... fürchte da hilft nur PHP für 2.4.x neu kompilieren....