[PATCH] lighttpd Konfigurationsfrontend

Hat übrigens genau das Problem behoben.

Gibt es eigentlich eine Möglichkeit Zugriffsrechte spezieller Ordner auf bestimmte IPs oder Ranges festzulegen anstatt Benutzer zu verwenden?
 
Via Webfrontend gibt es da nichts - mittels der erweiterten Konfig kannst du aber beliebige Optionen einstellen, u.a. Zugriff basierend auf IPs
 
@olistudent: könntest Du bitte den angehängten Patch aufnehmen. Mit diesem wird im Falle, dass man nur nach syslog loggt, kein Eintrag unter Status erzeugt (dieser zeigt die log-Dateien an, die es aber in diesem Fall gar nicht gibt). Ist reine Kosmetik, stört halt ein wenig :) Danke!
 

Anhänge

  • rc.lighttpd.no_status_entry_if_syslog_only.patch.txt
    745 Bytes · Aufrufe: 5
Hier ein neuer Patch gegen trunk 3211:

- chroot wird jetzt wirklich umgesetzt: es wird ein chroot im docroot konfiguriert - alle notwendigen Dateien und Verzeichnisse werden angelegt - lighttpd und ggf. konfigurierte CGIs/FastCGIs laufen alle im chroot
- Config.in: Hinzufügen der Option für das Kompilieren von /usr/bin/ldd (da man es ja sonst nicht einfach mal inkludieren würde), um php-cgi und Co inkl. deren libs in das chroot zu kopieren
- Endlich funktioniert auch das Starten von lighttpd mit der Gruppe wwwrun (siehe Fehlerbericht unten)

Ich habe es getestet, dennoch würden zusätzliche Tests von anderen nicht schaden.

@olistudent, andere Freetz-Entwickler: es gibt ein Problem mit der libfreetz, die via LD_PRELOAD angezogen wird. Wenn diese lib beim Starten von lighttpd geladen wird, gibt es einen Fehler, wenn php-cgi vom lighttpd geladen werden soll: lighttpd bekommt ENOBLK als Fehler zurück (wenn ich chroot aktiviere) oder ich bekomme EACCES zurück wenn kein chroot, dafür die GID != 0 ist. Ich habe den Fehler erst einmal umgangen, in dem ich vor dem Aufruf von lighttpd ein LD_PRELOAD= gesetzt habe. Damit funktioniert alles.

Ciao
Stephan
 

Anhänge

  • lighttpd-1.4.22-28.patch.bz2
    4.4 KB · Aufrufe: 5
und wie es so geht, chroot hat seine Tücken.

Hier ein neuer Patch, der den -28 ersetzt: es fehlte /dev/null im chroot.

Ciao
Stephan
 

Anhänge

  • lighttpd-1.4.22-29.patch.bz2
    4.4 KB · Aufrufe: 6
neuer Patch:

- compile-time Option für zlib (wird für mod_compress gebraucht, da sonst dieses Modul ein NOOP macht).

Ciao
Stephan
 

Anhänge

  • lighttpd-1.4.22-30.patch.bz2
    803 Bytes · Aufrufe: 7
Danke - ich bin kein makefile-Profi :)

Ciao
Stephan
 
Ich muss jetzt leider nochmal ne blöde Frage stellen.
Hab seit ein paar Tagen meine neue 7270 und bin grad bissle mit dem Freetz Trunk und dem lighttpd Webserver am rumspielen. Wenn ich unter Dienste lighttpd starte, gibt er mir auf der Folgeseite KEINEN Fehler, sondern lediglich die Meldung ...done. Wenn ich dann aber zurück zur Übersicht gehe, steht der Status nachwievor auf stopped. Entsprechend bekomme ich deswegen wahrscheinlich unter http://192.168.178.1:8008/index.html die Fehlermeldung Verbindung fehlgeschlagen.
Habe ich was vergessen?
Ach ja, ich verwende aktuell den Trunk 3253 und das Verzeichnis /var/www/htdocs habe ich angelegt.
Danke!

Ciao Stefan :)
 
Poste mal:
Code:
sh -x /etc/init.d/rc.lighttpd start
und/oder die Logs, die den Teil des Starten anzeigen.
 
Zuletzt bearbeitet:
Poste mal:
Code:
sh -x /etc/init.d[B][COLOR=Red]s[/COLOR][/B]/rc.lighttpd start

Guten morgen alle zusammen,
Hat sich da bei dir der Fehlerteufel eingeschlichen?!?

Dieses Start-Problem hatte ich anfangs auch. Bei mir lag es daran, daß die Pfade zu den logdateien sowie der Benutzer dieser Dateien nicht stimmten. Sofern du allerdings den Syslog zum loggen nutzt, liegt dein PRoblem wo anders.
Zum testen einfach mal den Haken bei "Log aktivieren" raus/rein nehmen
 
Zuletzt bearbeitet von einem Moderator:
Hmpf. Morgens um die Zeit also meh als einmal lesen um Fehler zu finden :D
 
Das Problem wird wohl eher aus den Logs als aus der Ausgabe des rc-Skripts ersichtlich. Das rc-Skript ist ja der Meinung, daß es beim Start keinen Fehler gab. Vermutlich gibt es erst kurz nach dem Start einen Fehler, so daß der Server dann abbricht. Oder Fehler beim Start werden vom Server nicht korrekt über einen Status an das Skript zurück gegeben.
 
Also auf der Komandozeile bekomme ich folgenden Output:
Code:
/var/mod/root # sh -x /etc/init.d/rc.lighttpd start
+ DAEMON=lighttpd
+ . /etc/init.d/modlibrc
+ export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/mod/sbin:/mod/bin:/mod/usr/sbin:/mod/usr/bin
+ export LD_LIBRARY_PATH=/mod/lib:/mod/usr/lib
+ [ -n lighttpd ]
+ [ ! -r /mod/etc/conf/lighttpd.cfg ]
+ modlib_loadconfig
+ local CONF_FILE=/mod/etc/conf/lighttpd.cfg
+ [ -r /mod/etc/conf/lighttpd.cfg ]
+ . /mod/etc/conf/lighttpd.cfg
+ export LIGHTTPD_AUTH=no
+ export LIGHTTPD_AUTHMETH=digest
+ export LIGHTTPD_CHROOT=no
+ export LIGHTTPD_DIRLISTING=disable
+ export LIGHTTPD_DIRLISTINGENC=utf-8
+ export LIGHTTPD_DIRLISTINGVIRT=
+ export LIGHTTPD_DOCROOT=/var/media/ftp/uStor01/Test
+ export LIGHTTPD_ENABLED=no
+ export LIGHTTPD_ERROR=no
+ export LIGHTTPD_ERRORFILE=/error-handler.html
+ export LIGHTTPD_ERRORVIRT=
+ export LIGHTTPD_LIMITCONN=0
+ export LIGHTTPD_LIMITSRV=0
+ export LIGHTTPD_LIMITVIRT=
+ export LIGHTTPD_LOGGING=no
+ export LIGHTTPD_LOGGING_ACCESS=/var/log/lighttpd/access.log
+ export LIGHTTPD_LOGGING_ACCESS_FILE=yes
+ export LIGHTTPD_LOGGING_ERROR=/var/log/lighttpd/error.log
+ export LIGHTTPD_LOGGING_ERROR_FILE=yes
+ export LIGHTTPD_MODCGI=no
+ export LIGHTTPD_MODCGIVIRT=
+ export LIGHTTPD_MODCOMPRESS=no
+ export LIGHTTPD_MODCOMPRESSDIR=/var/www/compress/
+ export LIGHTTPD_MODCOMPRESSVIRT=
+ export LIGHTTPD_MODFASTCGIPHP=yes
+ export LIGHTTPD_MODFASTCGIPHPMAXPROC=3
+ export LIGHTTPD_MODFASTCGIPHPPATH=/usr/bin/php-cgi
+ export LIGHTTPD_MODFASTCGIPHPVIRT=
+ export LIGHTTPD_MODFASTCGIRUBY=no
+ export LIGHTTPD_MODFASTCGIRUBYMAXPROC=3
+ export LIGHTTPD_MODFASTCGIRUBYPATH=
+ export LIGHTTPD_MODFASTCGIRUBYVIRT=
+ export LIGHTTPD_MODSTATUS=no
+ export LIGHTTPD_MODSTATUSCONFIG=/server-config
+ export LIGHTTPD_MODSTATUSSORT=disable
+ export LIGHTTPD_MODSTATUSSTATISTIC=/server-statistics
+ export LIGHTTPD_MODSTATUSSTATUS=/server-status
+ export LIGHTTPD_MODSTATUSVIRT=
+ export LIGHTTPD_PORT=8008
+ export LIGHTTPD_SSLADDITIONAL=no
+ export LIGHTTPD_SSLENABLE=disable
+ export LIGHTTPD_SSLPORT=443
+ export LIGHTTPD_SSLREDIRECT=no
+ export LIGHTTPD_SSLVIRT=
+ export LIGHTTPD_VIRTHOST=no
+ export LIGHTTPD_VIRTHOSTTYPE=%3.%0
+ start
+ echo -n Starting lighttpd ...
Starting lighttpd ...+ checkdir /var/media/ftp/uStor01/Test
+ i=10
+ [ ! -d /var/media/ftp/uStor01/Test ]
+ configure
+ cleanup
+ cleanup_always
+ modunreg status lighttpd lighttpd-log
+ rm -rf /var/log/lighttpd/
+ rm -f /mod/etc/lighttpd/lighttpd.conf
+ mkdir -p /mod/etc/lighttpd
+ [ -x /tmp/flash/lighttpd_conf ]
+ /mod/etc/default.lighttpd/lighttpd_conf
+ [ -r /tmp/flash/lighttpd.extra ]
+ status_log
+ [ no = yes ]
+ LD_PRELOAD=
+ lighttpd -f /mod/etc/lighttpd/lighttpd.conf
+ exitval=0
+ [ 0 -eq 0 ]
+ echo done.
done.
+ exit 0
/var/mod/root # 2000-01-01 01:20:53: (log.c.97) server started
Das sagt mir allerdings recht wenig. Das Logging hab ich deaktiviert. Wenn ich das Häkchen setze funktionierts aber auch nicht. Das Standardverzeichnis für die Logs /var/log/lighttpd/ existiert aber nicht und ich kann es auch nicht anlegen. Wo genau kann ich denn noch nach ner potentiellen Fehlermeldung suchen? Oder soll ich mal meine aktuelle Config posten und wenn ja welche alle?

Mal noch ne ganz andere Sache, im make menuconfig kann man ja so einiges für lighttpd einstellen. Ich brauche "nur" nen ganz einfachen Webserver mit PHP, was sollte ich da alles aktivieren bzw. was kann ich weglassen bzw. wie sollte die allgemeine config aussehen (die Dienste können auf der Box laufen nur dass htdocs wird später auf der externen Platte liegen).

Danke!
Geh jetzt erstmal in den Wald laufen, widme mich heute abend nochmal diesem Problem.

Ciao Stefan :)
 
Das Logging hab ich deaktiviert. Wenn ich das Häkchen setze funktionierts aber auch nicht.
Es hat auch keiner gesagt, daß es mit Logging funktionieren würde. Das Logging kann einem aber Anhaltspunkte geben, warum es nicht läuft. Wobei hier nicht das Logging der Seitenaufrufe gemeint ist.

Das Standardverzeichnis für die Logs /var/log/lighttpd/ existiert aber nicht und ich kann es auch nicht anlegen.
Schon mal nicht so gut. Und was genau heitß "kann es nicht anlegen"?

Wo genau kann ich denn noch nach ner potentiellen Fehlermeldung suchen?
Mit logread.
 
Schon mal nicht so gut. Und was genau heitß "kann es nicht anlegen"?
Na wenn ich per SFTP als root verbunden bin und im Verzeichnis /var/log/ einen Ordner lighttpd anlegen möchte habe ich zumindest letzte Nacht noch ein Permission denied bekommen (oder so ähnlich). Habe es gerade nochmal probiert und jetzt ging es. Keine Ahnung, vielleicht war es gestern einfach schon zu spät.
OK, im error.log steht nach einem Startversuch dann folgendes:
Code:
2000-01-01 01:11:41: (log.c.97) server started 
2000-01-01 01:11:41: (mod_fastcgi.c.1051) the fastcgi-backend /usr/bin/php-cgi failed to start: 
2000-01-01 01:11:41: (mod_fastcgi.c.1055) child exited with status 13 /usr/bin/php-cgi 
2000-01-01 01:11:41: (mod_fastcgi.c.1058) If you're trying to run PHP as a FastCGI backend, make sure you're using the FastCGI-enabled version.
You can find out if it is the right one by executing 'php -v' and it should display '(cgi-fcgi)' in the output, NOT '(cgi)' NOR '(cli)'.
For more information, check http://trac.lighttpd.net/trac/wiki/Docs%3AModFastCGI#preparing-php-as-a-fastcgi-programIf this is PHP on Gentoo, add 'fastcgi' to the USE flags. 
2000-01-01 01:11:41: (mod_fastcgi.c.1365) [ERROR]: spawning fcgi failed. 
2000-01-01 01:11:41: (server.c.902) Configuration of plugins failed. Going down.
Hat wohl irgendwas mit PHP und FastCGI zu tun, habs in der lighttpd Config mal eben disabled und siehe da der Dienst startet sauber.
Ok, wie bekomme ich nun aber noch PHP ans Laufen?

:EDIT: ich bekomme jetzt allerdings ein 403 Fehler beim Aufruf von http://192.168.178.1:8008

Und könnte bitte jemand noch was zu meiner letzten Frage bzgl. was man für lighttpd in make menuconfig alles einstellen/includen sollte (da gibts ja zig Module, brauche eigentlich nur PHP).
Danke!

Ciao Stefan :)
 
Zuletzt bearbeitet:
[Edit frank_m24: Mehrere Beiträge zusammengefasst. Man kann seine Beiträge auch editieren.]
Willkommen im Club...mein php geht auch plötzlich (seit dem wechsel von 3150 auf 3256) nicht mehr...selber php Fehler...ohne aktivem php im Webif geht es...nur halt ohne php...
Das Binary iss aber in /usr/bin zu finden und gehört dem root:root.
Schon jemand nen Trick parat?

[Beitrag 2:]
Habe mal nen anderes PHP Binary von Platte verwendet...damit geht php wenn es im lighthttpd eingeschaltet iss...
Muss also am PHP ausm Freetz liegen...das ist bei mir statisch gelinkt gebaut...heißt das so?? oder verwechsel ich da grad was mit dll pragrammierung in Windows?
 
Hi Darky,
ich denke, dass es an den Rechten des PHP Binaries liegt.

MfG Oli
 
mein php geht noch nur habe ich das problem das meine ext2 auf die rechte 700 geschrieben wird und vsftpd nicht mehr drauf zugreifen kann.
php und alles geht aber wunderbar siehe http://tails2k.no-ip.org/
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.