[PATCH] lighttpd Konfigurationsfrontend

lightttpd "external" machen - outboard/lighttppd.gz hat Größe 0

Hallo!
Ich hoffe, ich bin in diesem Thread richtig. Nach dem Durchscannen des Forums habe ich hierzu noch nicht gefunden:
Ich versuche, lighttpd "external" zu machen (Freetz-Trunk). Leider hat die Download-datei danach immer die Größe Null:

Code:
slightly@StinkyLinux:~/freetz-trunk$ ls -al outboard/
insgesamt 1,2M
drwxr-xr-x  2 slightly slightly 4,0K 2009-12-26 10:13 .
drwxr-xr-x 20 slightly slightly 4,0K 2009-12-26 10:11 ..
-rw-r--r--  1 slightly slightly  350 2009-12-26 10:13 downloader.conf
-rw-r--r--  1 slightly slightly  59K 2009-12-26 10:13 libpcre.so.0.0.1.gz
-rw-r--r--  1 slightly slightly  751 2009-12-26 10:13 libresolv-0.9.29.so.gz
-rw-r--r--  1 slightly slightly    0 2009-12-26 10:13 lighttpd.gz
-rw-r--r--  1 slightly slightly  77K 2009-12-26 10:13 ncftpget.gz
-rw-r--r--  1 slightly slightly 124K 2009-12-26 10:13 ncftp.gz
-rw-r--r--  1 slightly slightly  78K 2009-12-26 10:13 ncftpput.gz
-rw-r--r--  1 slightly slightly 268K 2009-12-26 10:13 nmbd.gz
-rw-r--r--  1 slightly slightly 456K 2009-12-26 10:13 smbd.gz
-rw-r--r--  1 slightly slightly 7,2K 2009-12-26 10:13 smbpasswd.gz
-rw-r--r--  1 slightly slightly  58K 2009-12-26 10:13 vsftpd.gz
slightly@StinkyLinux:~/freetz-trunk$

Hat jemand eine Idee, was ich falsch mache? Bin ich der Einzige mit diesem Problem? Wenn ich bei der Verbesserung des Codes helfen kann, bin ich gerne dabei.
Viele Grüße! Stephen

PS: Korrektur auf die unten angeführte Anmerkung "Freetz external erzeugt keine Datei lighttpd.gz, also woher kommt diese Datei?": Stimmt - Sorry, ich habe natürlich "Downloader" statt "External" gemeint.
 
Zuletzt bearbeitet:
Die Datei samt anderen Sachen wurde in Zügen der Downloader-Vorbereitung erzeugt. Wenn du unter External die Downloader-Option aktivierst, passiert sowas. Normalerweise sind diese Schritte ausreichend mit "echo"-Ausgaben begleitet, wofür ich hier schon fast gesteinigt werde. Dazu sage ich nur: Lesen bildet! Also, nicht alles, was fwmod und make da ausspucken ist für die Katz. Manche Meldungen (insbesondere am Ende) sind wirklich lohnenswert sie zu lesen. Dies betrifft allerdings auch die HELP-Funktion in menuconfig.

MfG
 
Die Datei samt anderen Sachen wurde in Zügen der Downloader-Vorbereitung erzeugt. Wenn du unter External die Downloader-Option aktivierst, passiert sowas. Normalerweise sind diese Schritte ausreichend mit "echo"-Ausgaben begleitet, wofür ich hier schon fast gesteinigt werde. Dazu sage ich nur: Lesen bildet! Also, nicht alles, was fwmod und make da ausspucken ist für die Katz. Manche Meldungen (insbesondere am Ende) sind wirklich lohnenswert sie zu lesen....
Ja, danke für die Tipps. Im Output von make gibt es folgende Stelle nach "processing external":
Code:
...
removing old Downloader configuration file outboard/downloader.conf
  creating new Downloader configuration file outboard/downloader.conf
  packing lighttpd.gz for Downloader
  /usr/bin/lighttpd... moved & linked
  packing lighttpd.gz for Downloader
gzip: build/modified/filesystem/usr/lib/lighttpd is a directory -- ignored
  /usr/lib/lighttpd... moved & linked...
... was ich mich nun frage, ob dieser Versuch, das Verzeichnis /usr/lib/lighttpd für external zu komprimieren, ein Bug ist, oder, ob ich etwas falsch konfiguriert habe. /usr/bin/lighttpd alleine zu komprimieren, wäre ja nur die halbe Miete, oder?
Dies betrifft allerdings auch die HELP-Funktion in menuconfig.
Die Hilfe in "make menuconfig" zu lighttpd, seine Modulen und external habe ich gelesen, allerdings keinen Hinweis zu diesem problem hier gefunden.
BTW: Wenn ich lightttpd nicht für "external" flagge, dann läuft make ohne Fehler durch. Ich habe allerdings noch nicht versucht, das entstandene Image zu flashen.
Viele Grüße! Stephen
 
Das Problem an sich ist nicht das exernal-Script, das funktioniert auch mit Verzeichnissen, sondern der downloader-Part. Will heissen: Wenn du auf den Downloader verzichtest, kannst du external aktuell auch so benutzen.

Die Frage ist, wieso gzip dort nicht recursiv arbeitet?
 
Das Problem an sich ist nicht das exernal-Script, das funktioniert auch mit Verzeichnissen, sondern der downloader-Part. Will heissen: Wenn du auf den Downloader verzichtest, kannst du external aktuell auch so benutzen.
Die Verwendung von Downloader war für mich gerade der "Witz", es funktioniert ja für alle anderen Binaries auch.
Die Frage ist, wieso gzip dort nicht recursiv arbeitet?
Mit diesem "Hinweis" von Silent-Tears und ein paar "set -x" habe ich die Stelle mit dem Aufruf von gzip gefunden: In Zeile 224 in tools/external´ steht:
Code:
...
gzip -c "$EXTERNAL_TEMP" > "$OUT_DIR/$FILENAME.gz"
...
Dort muss es wohl eher "gzip -r -c ...." heissen. Wenn ich das von Hand einfüge, dann bekomme ich den ursprünglichen Fehler (lighttpd.gz hat 0 Bytes Größe) nicht mehr :)

Jedoch taucht dann gleich das Problem auf, dass das Verzeichnis /usr/lib/lighttpd und das Binary /usr/bin/lighttpd gleich heissen! Und beide wohl vom Downloader als lighttpd.gz gepackt werden
Da beide Gzip-Dateien in ein Verzeichnis kommen, geht eins verloren... Downloader kann also anscheinend nicht mit dieser Namenskollisionen umgehen. --> Hat jemand eine Idee, was man tun könnte :confused:

Nachträglich editiert (28.12., 23:30):
Die Idee wäre wohl zu verhindern, dass downloader sich über /usr/lib/lighttpd hermacht, d.h. Zeile 134 in tools/external im aktuellen Trunk ändern zu:
Code:
[ "$EXTERNAL_FREETZ_PACKAGE_LIGHTTPD" == "y" -a "$EXTERNAL_SUBDIRS" == "y"  \
   [B]-a ! "$EXTERNAL_DOWNLOADER" == "y"[/B] ] && EXTERNAL_FILES+=" /usr/lib/lighttpd"
--> Wenn das richtig bzw. ok wäre, wenn müsste ich denn bitte ansprechen, damit das eingebaut würde?
Danke und viele Grüße! Stephen
 
Zuletzt bearbeitet:
Das PRoblem daran ist, dass der Downloader für einzelne Files geschrieben wurde, und binaries ja nun auch nicht den selben Namen haben.
 
Ich bin's nochmal.
Hatte lighttpd + PHP eigentlich schon erfolgreich am Laufen, aber jetzt habe ich meine externe Platte (ext2) durch nen USB-Stick (FAT32) ersetzt und bekomme den Dienst nicht mehr gestartet. Ohne mod_fastcgi ist alles super, aber wenn ich das Häkchen setze und dann speichere bekomme ich folgende Fehlermeldung:
Saving settings...done.
Saving lighttpd.cfg...done.
mknod: /var/media/ftp/uStor01/www/dev/null: Operation not permitted
chmod: /var/media/ftp/uStor01/www/dev/null: No such file or directory
chown: /var/media/ftp/uStor01/www//var/run/lighttpd: Operation not permitted
cp: cannot stat '//tmp/flash/php.ini': No such file or directory
cp: cannot stat '//tmp/flash/php': No such file or directory
2020-02-12 10:10:29: (log.c.172) server started

Stopping lighttpd web server...done.
Starting lighttpd web server ...done.

Writing /var/flash/freetz...done.
23552 bytes written.
An was liegt das denn? Ich habe sonst an dem System eigentlich nichts geändert. Habe auch schon einmal gebootet.

Ciao Stefan :)
 
Ganz einfach: FAT32 scheint keine device Dateien zu wollen. D.h. entweder du lässt lighttpd ohne chroot laufen (und must demzufolge die Pfad-Konfg ändern) oder du formatierst den Stick mit ext2/3 oder reiserfs.

Ciao
Stephan
 
Ah, der chroot also. Muss man mal wissen, dass das nur mit ext2/3 geht.
Aber gut, dann halt ohne. Danke auf jeden Fall. Jetzt läuft die Kiste wieder.

Ciao Stefan :)
 
Zuletzt bearbeitet:
Kann ich irgendwo sehen, welche Optionen/Pakete in PHP bereits enthalten sind und lediglich beim Compilieren aktiviert werden müssen (wie z.B. beim GD-Support).
Und wie würde eine solche händische Modifizierung am Trunk aussehen, sprich in welchen Dateien müsste was geändert werden?
Und wie sieht das Ganze mit Features aus, die in PHP standardmäßig noch gar nicht enthalten sind? Wie könnte man sowas händisch hinzufügen?
Konkret geht es mit aktuell um curl, eventuell brauche ich aber noch weitere Features.
Danke schonmal.

Ciao Stefan :)
 
Einiges dazu steht im Wiki auf trac.freetz.org
 
Wenn ich z.B. curl und imap für PHP brauche, dann müsste ich ein komplett neues Paket für imap erstellen (curl gibt es ja bereits), im PHP-Menu zwei neue Optionen für mit curl und imap (welche dann automatisch die beiden Pakete selektieren) und in der php.mk dann noch folgende zwei Zeilen:
$(PKG)_CONFIGURE_OPTIONS += --with-curl="$(TARGET_TOOLCHAIN_STAGING_DIR)/usr"
$(PKG)_CONFIGURE_OPTIONS += --with-imap="$(TARGET_TOOLCHAIN_STAGING_DIR)/usr"
hinzufügen?
Ich würde dann mal versuchen, das Ganze in ein Patchfile zu generieren und hier posten. Könnte dann bitte jemand gegenlesen und ggf. korrigieren?
Oder ist der Ansatz jetzt total falsch?

Ciao Stefan :)
 
Ja stimmt natürlich, ist eigentlich ne PHP-Baustelle, aber da PHP ja irgendwie auch nen Webserver braucht und das in meinem Falle der lighttp ist, hab ich's halt hier gepostet.

Ciao Stefan :)
 
Hallo,
ich habe das lighttpd-Paket in meine aktuelles Freetz-Image (29.04.76freetz-devel-4293M) integriert, bekomme es aber einfach nicht zum laufen. Es kommt nur:

Code:
Starting lighttpd web server ...Directory /-var/-media/-ftp/-uStor01/www/htdocs not available at round 60 - sleeping
Directory /*var/*media/*ftp/*uStor01/www/htdocs not available at round 59 - sleeping
Directory /*var/*media/*ftp/*uStor01/www/htdocs not available at round 58 - sleeping
.
.
Directory /*var/*media/*ftp/*uStor01/www/htdocs not available at round 2 - sleeping
Directory /*var/*media/*ftp/*uStor01/www/htdocs not available at round 1 - not starting lighttpd

Das Verzeichnis ist da und beschreibbar:
Code:
/var/media/ftp/uStor01/www # ls -l
drwxrwxrwx   12 root     root         1024 Feb  9 11:56 htdocs

Ich habe es auch schon mit der /var/media/ftp/uStor01/www in der Pfadangabe versucht, ebenfalls ohne Erfolg.

In der Datei \mod\etc\conf\lighttpd.cfg habe ich folgendes entdeckt:
Code:
export LIGHTTPD_AUTH='no'
export LIGHTTPD_AUTHMETH='digest'
export LIGHTTPD_CHROOT='no'
export LIGHTTPD_DIRLISTING='enable'
export LIGHTTPD_DIRLISTINGENC='utf-8'
export LIGHTTPD_DIRLISTINGVIRT=''
export LIGHTTPD_DOCROOT='[COLOR="Red"]/*-var/*-media/*-ftp/*-uStor01[/COLOR]/www/htdocs'
export LIGHTTPD_ENABLED='no'
.
.
.

allerdings ohne die Sterne (die macht der Editor hier rein). Könnte es an den "-" liegen, daß der Pfad nicht gefunden wird? Wo kommen die überhaupt her? Gibt es irgendwo eine Anleiung für Dummies ohne USBroot auf der Box?

.:atomphil:.
 
Nunja, das docroot-Verzeichnis existiert nicht. Verzeichnisse mit einem Bindestrich am Anfang gibt es nicht auf der Box.

Versuche und /var/media/ftp/uStor01/www/htdocs und stelle sicher, dass auf der USB Platte das Verzeichnis www/htdocs existiert.

Ciao
Stephan
 
Natürlich haben die Minus-Zeichen da nichts verloren, und die Sterne würden spätestens dann stören, wenn der Webserver auf das Verzeichnis zugreifen will.
 
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.