[PATCH] lighttpd Konfigurationsfrontend

Wenn du chroot nutzt, dann muss auch die busybox und deren Libraries (ldd busybox) ins chroot.

MfG Oliver
 
Oh, daran hab ich nicht gedacht, jetzt funktioniert es!
Die Meldung auf dem WIF scheint dann aber nicht zu stimmen:

Falls FastCGI konfiguriert wird, müssen alle FastCGI Programme und all ihre Bibliotheken innerhalb des chroots liegen - falls das Programm ldd vorhanden ist, wird dies automatisch durchgeführt
 
Zuletzt bearbeitet:
Für FastCGI (php-cgi) stimmt die Meldung im WebIF. Bei cgi-Scripten muss der jeweilige Interpreter mit allen Libs von Hand kopiert werden.
ldd funktioniert bei *.cgi-Scripten nicht, siehe auch Posting Nr. 202.
 
Das hatte ich gesehen, da stand aber nichts von Libs für sh. Deshalb hab ich darauf nicht geachtet :-(
 
Das hatte ich gesehen, da stand aber nichts von Libs für sh. Deshalb hab ich darauf nicht geachtet :-(
Och, das hätte ja auch gut gehen können... ;) Nämlich dann, wenn php-cgi mal aktiviert wurde und dabei schon die erforderlichen libs automatisch per ldd ins chroot kopiert worden sind (zumindest bei mir ist "ldd sh" eine Teilmenge von "ldd php-cgi").

Vielleicht wäre es trotzdem hilfreich, den Erläuterungstext im WebIF entsprechend anzupassen, solange noch kein Wiki existiert.
 
Hallo,

anbei zwei Patches, die die folgenden Bugs fixen und hoffentlich keine neuen mitbringen.

Zum einen konnte man in dem Konfigurationsfrontend den Haken bei 'Umleitung aktivieren' nicht abwählen - Anhang anzeigen lighttpd.cgi-sslredirect_could_not_be_deselected-fix.patch.txt.

Zum anderen hat das lighttpd_conf-Script eine fehlerhafte Konfiguration für ssl-redirect generiert, falls man keine virtuellen Hosts hat (EDIT: und falls der ssl-Port vom Standard 443 abgewichen hat) Anhang anzeigen lighttpd_conf-sslredirect_no_virtual_hosts-fix.patch.txt.

@mehle: Könntest Du bitte über den zweiten Patch drüber schauen/testen, ob ich die Konfiguration für den Fall, dass virtuelle Hosts vorhaden sind, nicht kaputt gemacht habe. Das zum einen, zum anderen möchte ich Dich auf folgendes aufmerksam machen. Dadurch, dass der Port 80 bei der Box schon belegt ist und der Zugriff immer mit Angabe der Portnummer erfolgen muss, enthält [noparse]$HTTP["host"][/noparse] auch die Portnummer (daher matche ich sie beim Redirect explizit wieder raus). Ich bin mir nicht sicher, aber wird der Ausdruck [noparse]$HTTP["host"] == "some.virtual.host"[/noparse] (man beachte ==) überhaupt irgendwann mal true? In virthost_conf ersetzt Du (zwar nicht immer, aber in den meisten Fällen) "~" durch "=" und generierst dadurch genau so einen Eintrag. Eine weitere Frage ist, muss es in virthost_conf überhaupt diese for-Schleife geben, die für jeden virtuellen Host zwar einen separaten Eintrag aber immer mit demselben Inhalt in der Config-Datei erzeugt? Würde ein einziger Eintrag [noparse]$HTTP["host"] =~ "(vhost1|vhost2)(\:[0-9]+)?"[/noparse] es auch nicht tun? Oder stammt dieser Code noch aus den Zeiten, wo es noch keine libpcre in freetz gegeben hat?

Grüße
 
Zuletzt bearbeitet:
Hallo,
@mehle: Könntest Du bitte über den zweiten Patch drüber schauen/testen, ob ich die Konfiguration für den Fall, dass virtuelle Hosts vorhaden sind, nicht kaputt gemacht
Grüße

Danke für eure Ausdauer :)

Die Patches sind ok und funktionieren bei mir.

Ciao
Stephan
 
So, ich habe es nun endlich auch geschafft lighttpd inklusive PHP zum Laufen zu bekommen. Ich möchte mich daher nochmal ganz herzlich bei allen Beteiligten und ganz besonders bei den "Entwicklern" der entsprechenden Pakete bedanken!
Es macht echt einen riesen Spaß hier im Forum zu sein.

Ciao Stefan :)
 
Eine Frage hätte ich dann aber doch noch. Ich benötige für eine Galerie GD2. Zu dem Thema gibts hier im Forum leider nicht viel zu finden. Habe auch so schon im Internet gesucht, zumal dass ja kein Freetz spezifisches Problem, sondern eigentlich eine PHP Angelegenheit ist. Aber das Meiste was man findet, sind diverse Linux Varianten wo es ganz einfach mit apt-get funktioniert. Das bringt mir ja hier leider nicht so viel. Müsste man dazu PHP komplett neu kompilieren (damit hätte ich nämlich keine Ahnung) oder reicht es die Bibliotheken irgendwo hinzukopieren und in der php.ini darauf zu verweisen (was sicher wesentlich einfacher und schneller funktionieren würde)?
Kennt sich damit wer aus oder hat das vielleicht gar schon aktiv am Laufen?
Danke!

:EDIT: wenn ich das richtig sehe ist GD ab PHP 4.3 enthalten, trifft das auf das Freetzpaket ebenfalls zu? Weiterhin ist es (zumindest unter xampp auf Windows) so, dass in der php.ini lediglich ein extension Eintrag für GD gibt. Frage ist diese jetzt schon im Freetz PHP-Paket enthalten und wo liegt diese oder alternativ wo kann ich es runterladen und in welches Verzeichnis kopiere ich es am besten? Damit sollte es doch dann schon funktionieren, oder?

Ciao Stefan :)
 
Zuletzt bearbeitet:
Wie wäre es denn mit selber nachgucken? ;)
 
Ja ich weiß, zwei hilfreiche Antworten am Tag müssen reichen.
Na klar habe ich schon nachgeschaut, aber ich bin nun mal nicht so der Linux-Typ und mit Freetz bin ich auch nicht groß geworden und was für den einen oder anderen vielleicht logisch und ersichtlich ist, sind für den anderen große Fragezeichen. Wenn es ein Windowssystem wäre, würde ich die dll gerade von meinem xampp nehmen und es würde wahrscheinlich funktionieren. Ist aber ja Linux.

Ciao Stefan :)
 
Kannst du bitte mir mitteilen welche PHP Probleme du hattest bzw. wie du die gelöst hast?

Ich kann bei mir die Probleme nicht "nachvollziehen".

Danke
Stephan
 
Die GD lib ist nicht in freetz. Deswegen kann PHP auch kein GD-Support anbieten.

UPDATE: GD ist in PHP, wir brauchen nur --with-gd in den configure Aufruf einbauen.

Ciao
Stephan
 
Zuletzt bearbeitet:
Kannst du bitte mir mitteilen welche PHP Probleme du hattest bzw. wie du die gelöst hast?
Ich kann bei mir die Probleme nicht "nachvollziehen".
Hi Stephan,
inwiefern es Probleme waren und ob man von Lösung sprechen kann, lass ich jetzt mal im Raum stehen. Ich kann dir bzw. auch den anderen mal sagen was in welcher Reihenfolge mit welchen Ergebnissen ich gemacht habe.
- Im make menuconfig habe ich lediglich lighttpd incl. ldd support + PHP ohne die statisch-Option angehakt.
- In den lighttpd Einstellungen habe ich als Datenverzeichnis
Code:
/var/media/ftp/uStor01/privat/www
angegeben und Chroot aktiviert. Alle anderen Einstellungen erstmal default gelassen.
- In der Beschreibung steht, das Webseiten im Unterverzeichnis /websites/default gesucht werden, also habe ich diese angelegt und eine index.html Datei hineinkopiert.
- Dann den lighttpd Dienst gestartet, was auch ohne Probleme funktionierte.
- Beim Aufruf der Website im Browser gabs dann aber nen 404-Fehler.
- Das lag daran, dass nur in /websites gesucht wird. Die Angabe mit /websites/default habe ich also falsch verstanden (sollte vielleicht etwas eindeutiger und klarer in der Beschreibung stehen).
- OK, da war ich ja schonmal glücklich :D
- Nun gings an PHP, also Häkchen rein bei "mod_fastcgi für PHP aktivieren". In der Beschreibung steht, das php-cgi in "/usr/bin/php-cgi" gefunden wurde. Ist das ein statischer Text oder wird der dynamisch ermittelt? Diese Angabe steht zu Beginn ja auch schon im Pfad-Feld, also habe ich es so gelassen und die Einstellungen gespeichert.
- Den Dienst ohne Fehlermeldung neu gestartet und siehe da eine index.php (mit Inhalt phpinfo(); ) wurde sauber angezeigt.
- Durch den ldd-Support wurde nun noch das /usr-Verzeichnis im Chroot angelegt (bei mir unterhalb von /www).
- Entsprechend habe ich danach nochmal den php-cgi Pfad geändert in
Code:
/var/media/ftp/uStor01/privat/www/usr/bin/php-cgi
- Dienst neugestartet und die phpinfo() wird nachwievor sauber angezeigt.
So hat es zumindest bei mir funktioniert. Ich hoffe das hilft ein klein wenig weiter.

UPDATE: GD ist in PHP, wir brauchen nur --with-gd in den configure Aufruf einbauen.
Das mit dem --with-gd habe ich gestern bei meinen Recherchen schonmal gelesen, sagt mir aber nicht all zu viel. Sehe ich das richtig, dass das in ein Patch muss und wir Freetz neu compilieren müssen?
Große Frage, wer kann so einen Patch auf die Schnelle anbieten?

:EDIT: Ich habe mir gerade mal die Sources vom Trunk angeschaut und die entsprechenden Befehle in der php.mk gefunden.
@Stephan: bedeutet das, dass man dort z.B. in Zeile 34 einfach folgenden Eintrag hinzufügen müsste?
Code:
$(PKG)_CONFIGURE_OPTIONS += --with-gd
Besser wäre es aber wahrscheinlich das irgendwie als Option im menuconfig einzubauen, oder?

Ciao Stefan :)
 
Zuletzt bearbeitet:
Hier noch ein Minipatch, der sich lange in meiner Sammlung versteckt hatte: er zeigt die Verzeichnisse an, die als DOCROOT verwendet werden.

Ciao
Stephan
 

Anhänge

  • lighttpd-20090614.patch.bz2
    1.3 KB · Aufrufe: 3
:EDIT: Ich habe mir gerade mal die Sources vom Trunk angeschaut und die entsprechenden Befehle in der php.mk gefunden.
@Stephan: bedeutet das, dass man dort z.B. in Zeile 34 einfach folgenden Eintrag hinzufügen müsste?
Code:
$(PKG)_CONFIGURE_OPTIONS += --with-gd
So einfach scheint es wohl nicht zu sein, es hat zumindest nicht geklappt. In der phpinfo taucht dieser Konfigurationsparameter nachwievor nicht auf.
Gibt es noch mehrere Dateien, die angepasst werden müssten und wäre es überhaupt mit o.g. Option getan?
Jetzt weiß ich nicht ob es irgendwas damit zu tun oder von woanders herkommt, meine Imagebezeichnung hatte nach der Revisionnummer noch ein großes "M" stehen. Woher kommt das?

Ciao Stefan :)
 
Das "M" bedeutet modified, Du hast Änderungen gegenüber dem Original vorgenommen.

Damit Änderungem am Makefile wirksam werden, mußt Du das Paket neu erstellen. Das Einfachste ist, vorher
Code:
make php-dirclean
auszuführen. Damit wird das vorhandene Paket gelöscht und beim nächsten mal wird es neu erstellt.
 
Das "M" bedeutet modified, Du hast Änderungen gegenüber dem Original vorgenommen.
Sowas habe ich mir schon gedacht.
Damit Änderungem am Makefile wirksam werden, mußt Du das Paket neu erstellen. Das Einfachste ist, vorher
Code:
make php-dirclean
auszuführen. Damit wird das vorhandene Paket gelöscht und beim nächsten mal wird es neu erstellt.
Danke für diesen Hinweiß, das werd ich dann mal probieren.
Also ich ändere die Datei php.mk, mach dann ein
Code:
make php-dirclean
und danach ganz normal ein
Code:
make
Ist diese Vorgehensweise korrekt?

Ciao Stefan :)
 
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.