[PATCH] lighttpd Konfigurationsfrontend

Hi.
Bin grad am stracen und dabei ist mir aufgefallen, dass lighttpd zuerst in der libdir (/usr/lib/lighttpd) nach seinen Modulen sucht. Sollten wir die dann nicht auch dort hin packen?

MfG Oliver

edit: Der Patch ist nicht vollständig.
 

Anhänge

  • lighttpd-1.4.22-20090509-1.patch.bz2
    1.1 KB · Aufrufe: 10
Zuletzt bearbeitet:
lighttpd + cgi + chroot

Als Tipp für diejenigen, die sich -wie ich- wundern, wieso ihre *.cgi-Scripten bei aktiviertem chroot nicht laufen: Genauso wie bei FastCGI/PHP müssen bei aktiviertem Chroot alle Programme, die das *.cgi-Script benötigt, innerhalb des Chroots liegen. Anders als bei FastCGI/PHP geschieht dies nicht automatisch, wenn im Webinterface mod_cgi aktiviert wird (ist ja auch logisch, weil nur der Programmierer des *.cgi-Scripts weiß, welche Programme zum Ausführen benötigt werden...).

Wenn z.B. ein #!/bin/sh-Script als cgi-script laufen soll, muss vorher /bin/sh manuell in das Chroot-Verzeichnis kopiert werden. Eigentlich trivial, aber die Erläuterungen im WebIF sprechen insoweit nur von FastCGI.

Warum ich das schreibe? Damit andere, die die Suchfunktion bedienen können, sich nicht unnötig wundern :rolleyes:
 
Leider funktioniertein Login mit authorized_key per Dropbear nicht mehr, vermutlich wegen #3321. Fehlermeldung:
Code:
dropbear[5765]: /mod/root must be owned by user or root, and not writable by others
:-(
 
Ich weiß zwar nicht, ob der Patch wegen lighttpd gemacht wurde, aber bei mir kommt schon beim Erstellen
Code:
find: invalid predicate `-P'
 
Dann ist dein find zu alt :-] Hatte vor kurzem auch das Problem, dass die Downloads nicht nach dl/ kamen. Lösung war ein wget welches die Optionen hat zu nehmen..
 
Ich habe inzwischen diese Beschreibung zu der Option gefunden:
-P Never follow symbolic links. This is the default behaviour. When find examines or prints information a file, and the file is a symbolic link, the information used shall be taken from the properties of the symbolic link itself.

Die Option gibt also nur an, daß find sich so verhalten soll, wie es das auch ohne die Option tun würde.

Ich sehe aber keinen Widerspruch zwischen "chmod +rx" und "not writable by others". Und außerdem sollte die Änderung sich nur auf Verzeichnisse der ersten Ebene im SquashFS auswirken und nicht auf /mod/root.
 
[erledigt] max-procs: doppelt so viele php-cgi-Prozesse

Funktioniert die Variable max-procs (im WebIF "Maximale Anzahl der PHP Prozesse") nicht richtig? Im WebIF steht 3 und das wird auch richtig in /mod/etc/lighttpd/lighttpd.conf übernommen:
Code:
server.modules += ( "mod_fastcgi" )
fastcgi.server = ( ".php" => (( "socket" => "/var/run/lighttpd/php-fastcgi.sock
et", "bin-path" => "/usr/bin/php-cgi", "max-procs" => 3 )) )

ps -w sagt aber:
Code:
 2555 wwwrun    3712 S    lighttpd -f /mod/etc/lighttpd/lighttpd.conf 
 2556 wwwrun    5292 S    /usr/bin/php-cgi 
 2557 wwwrun    5292 S    /usr/bin/php-cgi 
 2558 wwwrun    5292 S    /usr/bin/php-cgi 
 2559 wwwrun    5292 S    /usr/bin/php-cgi 
 2560 wwwrun    5292 S    /usr/bin/php-cgi 
 2561 wwwrun    5292 S    /usr/bin/php-cgi

EDIT: Hat sich erledigt. Lesen bildet: max-procs definiert nur die Parent Prozesse, die ihrerseits einen Child Prozess spawnen. Steht sogar in der FAQ
 
Zuletzt bearbeitet:
Okay, ich mach das -P wieder raus.

@cuma
Gehört zwar eigentlich nicht hier her, aber welche Rechte hat denn dein /var/mod/root?

@alpha1974
Ah, danke. Hab mich auch schon gewundert.

MfG Oliver
 
Code:
l /mod/root/
drwxrwxr-x    2 root     root            0 May 13 04:21 .
drwxrwxr-x   11 root     root            0 Jan  1  2000 ..
...

nach einem
Code:
chmod g-w /mod/root/
auf der Box gehts wieder
 
Darf ich mal fragen, was die dropbear Diskussion mit lighttpd zu tun hat?

Vielen Dank
Stephan
 
Hi.
Bin grad am stracen und dabei ist mir aufgefallen, dass lighttpd zuerst in der libdir (/usr/lib/lighttpd) nach seinen Modulen sucht. Sollten wir die dann nicht auch dort hin packen?

Natürlich können wir solch einen Patch nutzen. Aber unsere Installation nutzt das Default des lighttpd Makefiles. Siehst du einen Grund, dies zu ändern (die Module werden alle zu Beginn von lighttpd geladen - Geschwindigkeitsprobleme sollte es damit also nicht geben).

UPDATE: Ah, Blödsinn, wir installieren dies ja manuell. Ich hatte die Lokation der Module von meinem Ubuntu-Package. Aber natürlich können wir die Module in /usr/lib/lighttpd speichern.

Ciao
Stephan
 
Zuletzt bearbeitet:
Ich wollt mal ganz unverbindlich nachfragen was eigentlich die Thematik lighttpd + PHP macht. Funktioniert das mittlerweile bzw. was muss man alles konfigurieren und einstellen damit es läuft. Oder gibt es ein HowTo dafür? Hier sind ja schließlich doch einige unterwegs, die das am Laufen haben.
Wäre euch sehr dankbar!

Ciao Stefan :)
 
Wurde der Patch zum ändern der Berechtigungen nicht für Dropbear eingecheckt? Auf einer 2. Box hab ich übrigens das gleiche Problem
 
Falls du das Changeset meinst welches die Execute Berechtigung für alle Top-Level Ordner setzt. Dieses wurde unter anderem auch für lighttpd eingecheckt. Betrifft aber alles was Binaries unter einem anderen Benutzer als root ausführen möchte. Nach der Änderung funktionierten PHP als fastcgi und cgi-Skripte bei mir.
 
Ja, ging davon aus, dass Changeset 3321 dies verursacht, da sonst in diese Richtung nichts geändert wurde. Da ich immer keyFiles nutze fällt mir das gleich auf. Ich kann das momentan aber nicht testen und hab mir vorerst mit einen Befehl in der rc.custom beholfen


[UPDATE]
Ok, die Sache mit den Berechtigungen hat wohl nichts mit lighttpd zu tun, ich mach dazu ein Ticket auf.
Andere Sache: Hat jemand Bash-cgis mit chroot am laufen? Ohne chroot ist es kein Problem. Ich hab in das Verzeichnis websites/../bin/ die busybux kopiert und dort ein paar Links zum testen angelegt, zB sh, ps oder pwd. Wenn ich ein .cgi im Browser aufrufe erscheint nur eine leere Seite :confused:
 
Mach mal ein "strace -f -p `pidof lighttpd`" bevor du das cgi aufrufst.

MfG Oliver
 
Andere Sache: Hat jemand Bash-cgis mit chroot am laufen?
Hier laufen #!/bin/sh-cgis im chroot problemlos mit /bin/sh (also umbenannte Busybox) im Chroot-Verzeichnis:
Code:
/var/media/ftp/platte/lighttpd/bin # ls -la sh
-rwxr-xr-x    1 root     root       589792 May 10 17:23 sh
Folgendes test.cgi gibt brav ein "Hallo!" aus :)
Code:
#!/bin/sh
cat << EOF
<html>
  <head>
    <title>Hallo-Titel</title>
  </head>
  <body>
     Hallo!
  </body>
</html>
EOF

By the way: Hat außer mir noch jemand beobachtet, dass es mit aktiviertem php-cgi häufiger zu Reboots kommt, selbst wenn überhaupt keine Zugriffe erfolgen (zumindest bilde ich mir das auf meiner 7170 ein)?
 
Danke für das Beispiel, es funktioniert bei mir aber nicht :-(

Die Dateien sehen so aus:
Code:
# l bin/
drwxr-xr-x    2 root     root         4096 May 21 02:50 .
drwxr-xr-x   10 root     root         4096 May 21 02:57 ..
-rwxr-xr-x    1 root     root       626012 May 19 19:21 busybox
lrwxrwxrwx    1 root     root            7 May 19 21:31 cut -> busybox
lrwxrwxrwx    1 root     root            7 May 19 21:31 echo -> busybox
lrwxrwxrwx    1 root     root            7 May 19 21:31 grep -> busybox
lrwxrwxrwx    1 root     root            7 May 19 20:31 killall -> busybox
lrwxrwxrwx    1 root     root            7 May 19 19:28 ps -> busybox
lrwxrwxrwx    1 root     root            7 May 19 19:26 pwd -> busybox
-rwxr-xr-x    1 root     root       626012 May 21 02:50 sh
lrwxrwxrwx    1 root     root            7 May 19 21:31 tr -> busybox
lrwxrwxrwx    1 root     root            7 May 19 19:22 uptime -> busybox

# l websites/cgi-bin/
drwxr-xr-x    2 root     root         4096 May 21 02:50 .
drwxr-xr-x    6 root     root         4096 May 21 02:48 ..
-rwxr-xr-x    1 root     root          104 May 21 02:50 x.cgi

Hier das strace
Code:
Process 2796 attached - interrupt to quit
time(NULL)                              = 1242867131
poll([{fd=4, events=POLLIN}, {fd=-1}, {fd=-1}], 3, 1000) = 0 (Timeout)
time(NULL)                              = 1242867132
poll([{fd=4, events=POLLIN}, {fd=-1}, {fd=-1}], 3, 1000) = 0 (Timeout)
time(NULL)                              = 1242867133
poll([{fd=4, events=POLLIN}, {fd=-1}, {fd=-1}], 3, 1000) = 1 ([{fd=4, revents=POLLIN}])
accept(4, {sa_family=AF_INET, sin_port=htons(3966), sin_addr=inet_addr("192.168.178.1")}, [16]) = 6
fcntl64(6, F_SETFD, FD_CLOEXEC)         = 0
fcntl64(6, F_SETFL, O_RDWR|O_NONBLOCK)  = 0
ioctl(6, 0x467f, 0x7f9395b8)            = 0
read(6, "GET /cgi-bin/x.cgi HTTP/1.1\r\nAcce"..., 511) = 457
stat64(0x47a2a0, 0x7f9393c0)            = 0
open("/websites/cgi-bin/x.cgi", O_RDONLY|O_LARGEFILE) = 7
close(7)                                = 0
pipe([33261, 1])                        = 7
pipe([0, 0])                            = 9
fork(Process 18482 attached
)                                  = 18482
[pid  2796] close(10)                   = 0
[pid  2796] close(7)                    = 0
[pid  2796] close(8)                    = 0
[pid  2796] fcntl64(9, F_SETFD, FD_CLOEXEC) = 0
[pid 18482] close(1 <unfinished ...>
[pid  2796] fcntl64(9, F_SETFL, O_RDWR|O_NONBLOCK) = 0
[pid  2796] wait4(18482, 0x7f939550, WNOHANG, NULL) = 0
[pid  2796] accept(4, 0x7f9399cc, [112]) = -1 EAGAIN (Resource temporarily unavailable)
[pid  2796] time(NULL)                  = 1242867133
[pid  2796] poll([{fd=4, events=POLLIN}, {fd=-1}, {fd=9, events=POLLIN}], 3, 1000 <unfinished ...>
[pid 18482] <... close resumed> )       = 0
[pid 18482] dup2(10, 1)                 = 1
[pid 18482] close(10)                   = 0
[pid 18482] close(9)                    = 0
[pid 18482] close(0)                    = 0
[pid 18482] dup2(7, 0)                  = 0
[pid 18482] close(7)                    = 0
[pid 18482] close(8)                    = 0
[pid 18482] close(2)                    = 0
[pid 18482] dup2(3, 2)                  = 2
[pid 18482] chdir("/websites/cgi-bin")  = 0
[pid 18482] close(2)                    = 0
[pid 18482] open("/dev/null", O_RDWR|O_LARGEFILE) = 2
[pid 18482] close(4)                    = 0
[pid 18482] close(5)                    = 0
[pid 18482] close(6)                    = 0
[pid 18482] close(7)                    = -1 EBADF (Bad file descriptor)
[pid 18482] close(8)                    = -1 EBADF (Bad file descriptor)
[pid 18482] close(9)                    = -1 EBADF (Bad file descriptor)
[pid 18482] close(10)                   = -1 EBADF (Bad file descriptor)
[pid 18482] close(11)                   = -1 EBADF (Bad file descriptor)
[pid 18482] close(12)                   = -1 EBADF (Bad file descriptor)
[pid 18482] close(13)                   = -1 EBADF (Bad file descriptor)
[pid 18482] close(14)                   = -1 EBADF (Bad file descriptor)
[pid 18482] close(15)                   = -1 EBADF (Bad file descriptor)
[pid 18482] close(16)                   = -1 EBADF (Bad file descriptor)
[pid 18482] close(17)                   = -1 EBADF (Bad file descriptor)
[pid 18482] close(18)                   = -1 EBADF (Bad file descriptor)
[pid 18482] close(19)                   = -1 EBADF (Bad file descriptor)
[pid 18482] close(20)                   = -1 EBADF (Bad file descriptor)
[pid 18482] close(21)                   = -1 EBADF (Bad file descriptor)
[pid 18482] close(22)                   = -1 EBADF (Bad file descriptor)
[pid 18482] close(23)                   = -1 EBADF (Bad file descriptor)
...
...
...
[pid 18482] close(243)                  = -1 EBADF (Bad file descriptor)
[pid 18482] close(244)                  = -1 EBADF (Bad file descriptor)
[pid 18482] close(245)                  = -1 EBADF (Bad file descriptor)
[pid 18482] close(246)                  = -1 EBADF (Bad file descriptor)
[pid 18482] close(247)                  = -1 EBADF (Bad file descriptor)
[pid 18482] close(248)                  = -1 EBADF (Bad file descriptor)
[pid 18482] close(249)                  = -1 EBADF (Bad file descriptor)
[pid 18482] close(250)                  = -1 EBADF (Bad file descriptor)
[pid 18482] close(251)                  = -1 EBADF (Bad file descriptor)
[pid 18482] close(252)                  = -1 EBADF (Bad file descriptor)
[pid 18482] close(253)                  = -1 EBADF (Bad file descriptor)
[pid 18482] close(254)                  = -1 EBADF (Bad file descriptor)
[pid 18482] close(255)                  = -1 EBADF (Bad file descriptor)
[pid 18482] execve("/websites/cgi-bin/x.cgi", ["/websites/cgi-bin/x.cgi"], [/* 22 vars */]) = -1 ENOENT (No such file or directory)
[pid 18482] write(2, "mod_cgi.c"..., 9) = 9
[pid 18482] write(2, "."..., 1)         = 1
[pid 18482] write(2, "1027"..., 4)      = 4
[pid 18482] write(2, ": aborted\n"..., 10) = 10
[pid 18482] rt_sigprocmask(SIG_UNBLOCK, [IOT], NULL, 16) = 0
[pid 18482] getpid()                    = 18482
[pid 18482] kill(18482, SIGIOT)         = 0
[pid 18482] --- SIGIOT (Aborted) @ 0 (0) ---
Process 18482 detached
<... poll resumed> )                    = 1 ([{fd=9, revents=POLLHUP}])
--- SIGCHLD (Child exited) @ 0 (0) ---
rt_sigreturn(0x12)                      = 1
close(9)                                = 0
wait4(18482, [{WIFSIGNALED(s) && WTERMSIG(s) == SIGIOT}], WNOHANG, NULL) = 18482
open("/etc/TZ", O_RDONLY)               = 7
read(7, "CET-1CEST-2,M3.5.0/02:00:00,M10.5"..., 68) = 45
read(7, ""..., 23)                      = 0
close(7)                                = 0
time(NULL)                              = 1242867133
open("/etc/TZ", O_RDONLY)               = 7
read(7, "CET-1CEST-2,M3.5.0/02:00:00,M10.5"..., 68) = 45
read(7, ""..., 23)                      = 0
close(7)                                = 0
open("/etc/TZ", O_RDONLY)               = 7
read(7, "CET-1CEST-2,M3.5.0/02:00:00,M10.5"..., 68) = 45
read(7, ""..., 23)                      = 0
close(7)                                = 0
open("/etc/TZ", O_RDONLY)               = 7
read(7, "CET-1CEST-2,M3.5.0/02:00:00,M10.5"..., 68) = 45
read(7, ""..., 23)                      = 0
close(7)                                = 0
write(3, "2009-05-21 02:52:13: (mod_cgi.c.5"..., 59) = 59
time(NULL)                              = 1242867133
open("/etc/TZ", O_RDONLY)               = 7
read(7, "CET-1CEST-2,M3.5.0/02:00:00,M10.5"..., 68) = 45
read(7, ""..., 23)                      = 0
close(7)                                = 0
open("/etc/TZ", O_RDONLY)               = 7
read(7, "CET-1CEST-2,M3.5.0/02:00:00,M10.5"..., 68) = 45
read(7, ""..., 23)                      = 0
close(7)                                = 0
open("/etc/TZ", O_RDONLY)               = 7
read(7, "CET-1CEST-2,M3.5.0/02:00:00,M10.5"..., 68) = 45
read(7, ""..., 23)                      = 0
close(7)                                = 0
setsockopt(6, SOL_TCP, TCP_CORK, [1], 4) = 0
writev(6, [{"HTTP/1.1 500 Internal Server Erro"..., 146}, {""..., 0}, {"<?xml version=\"1.0\" encoding=\"iso"..., 369}], 3) = 515
setsockopt(6, SOL_TCP, TCP_CORK, [0], 4) = 0
open("/etc/TZ", O_RDONLY)               = 7
read(7, "CET-1CEST-2,M3.5.0/02:00:00,M10.5"..., 68) = 45
read(7, ""..., 23)                      = 0
close(7)                                = 0
time(NULL)                              = 1242867133
open("/etc/TZ", O_RDONLY)               = 7
read(7, "CET-1CEST-2,M3.5.0/02:00:00,M10.5"..., 68) = 45
read(7, ""..., 23)                      = 0
close(7)                                = 0
open("/etc/TZ", O_RDONLY)               = 7
read(7, "CET-1CEST-2,M3.5.0/02:00:00,M10.5"..., 68) = 45
read(7, ""..., 23)                      = 0
close(7)                                = 0
open("/etc/TZ", O_RDONLY)               = 7
read(7, "CET-1CEST-2,M3.5.0/02:00:00,M10.5"..., 68) = 45
read(7, ""..., 23)                      = 0
close(7)                                = 0
write(5, "192.168.178.1 fritz:8008 - [21/May"..., 359) = 359
ioctl(6, 0x467f, 0x7f939600)            = 0
read(6, 0x47d030, 4159)                 = -1 EAGAIN (Resource temporarily unavailable)
time(NULL)                              = 1242867134
poll([{fd=4, events=POLLIN}, {fd=-1}, {fd=6, events=POLLIN}], 3, 1000) = 0 (Timeout)
time(NULL)                              = 1242867135
poll([{fd=4, events=POLLIN}, {fd=-1}, {fd=6, events=POLLIN}], 3, 1000) = 0 (Timeout)
time(NULL)                              = 1242867136
poll([{fd=4, events=POLLIN}, {fd=-1}, {fd=6, events=POLLIN}], 3, 1000 <unfinished ...>
Process 2796 detached
 
Was ist mit den Libraries?

MfG Oliver
 
Ich hab diese auf den Stick kopiert:
Code:
l websites/../usr/lib/
drwxr-xr-x    2 root     root         4096 May 20 14:52 .
drwxr-xr-x    3 root     root         4096 May 20 14:52 ..
-rwxr-xr-x    1 root     root         5480 May 20 14:52 mod_access.so
-rwxr-xr-x    1 root     root        13220 May 20 14:52 mod_accesslog.so
-rwxr-xr-x    1 root     root         5892 May 20 14:52 mod_alias.so
-rwxr-xr-x    1 root     root        24596 May 20 14:52 mod_auth.so
-rwxr-xr-x    1 root     root        19840 May 20 14:52 mod_cgi.so
-rwxr-xr-x    1 root     root         7380 May 20 14:52 mod_cml.so
-rwxr-xr-x    1 root     root        20944 May 20 14:52 mod_compress.so
-rwxr-xr-x    1 root     root        16372 May 20 14:52 mod_dirlisting.so
-rwxr-xr-x    1 root     root         5116 May 20 14:52 mod_evasive.so
-rwxr-xr-x    1 root     root         7564 May 20 14:52 mod_evhost.so
-rwxr-xr-x    1 root     root         8132 May 20 14:52 mod_expire.so
-rwxr-xr-x    1 root     root         8616 May 20 14:52 mod_extforward.so
-rwxr-xr-x    1 root     root        47680 May 20 14:52 mod_fastcgi.so
-rwxr-xr-x    1 root     root         6976 May 20 14:52 mod_flv_streaming.so
-rwxr-xr-x    1 root     root         6256 May 20 14:52 mod_indexfile.so
-rwxr-xr-x    1 root     root         3156 May 20 14:52 mod_magnet.so
-rwxr-xr-x    1 root     root         3416 May 20 14:52 mod_mysql_vhost.so
-rwxr-xr-x    1 root     root        19268 May 20 14:52 mod_proxy.so
-rwxr-xr-x    1 root     root         7416 May 20 14:52 mod_redirect.so
-rwxr-xr-x    1 root     root         9088 May 20 14:52 mod_rewrite.so
-rwxr-xr-x    1 root     root        16744 May 20 14:52 mod_rrdtool.so
-rwxr-xr-x    1 root     root        36208 May 20 14:52 mod_scgi.so
-rwxr-xr-x    1 root     root         7304 May 20 14:52 mod_secdownload.so
-rwxr-xr-x    1 root     root         6112 May 20 14:52 mod_setenv.so
-rwxr-xr-x    1 root     root         7092 May 20 14:52 mod_simple_vhost.so
-rwxr-xr-x    1 root     root        24952 May 20 14:52 mod_ssi.so
-rwxr-xr-x    1 root     root        10424 May 20 14:52 mod_staticfile.so
-rwxr-xr-x    1 root     root        25504 May 20 14:52 mod_status.so
-rwxr-xr-x    1 root     root         7076 May 20 14:52 mod_trigger_b4_dl.so
-rwxr-xr-x    1 root     root         7564 May 20 14:52 mod_userdir.so
-rwxr-xr-x    1 root     root         7604 May 20 14:52 mod_usertrack.so
-rwxr-xr-x    1 root     root        22820 May 20 14:52 mod_webdav.so
Das müsste doch eigentlich ausrechen
 

Zurzeit aktive Besucher

Keine Mitglieder online.

Statistik des Forums

Themen
246,096
Beiträge
2,246,047
Mitglieder
373,574
Neuestes Mitglied
Heselmeck
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.