{"id":2706,"date":"2022-02-09T18:24:50","date_gmt":"2022-02-09T17:24:50","guid":{"rendered":"https:\/\/ictknow-how.ch\/blog\/?p=2706"},"modified":"2023-12-12T13:43:48","modified_gmt":"2023-12-12T12:43:48","slug":"lighttpd-neue-versionen-fuer-windows","status":"publish","type":"post","link":"https:\/\/ictknow-how.ch\/blog\/2022\/02\/09\/lighttpd-neue-versionen-fuer-windows\/","title":{"rendered":"lighttpd &#8211; Neue Versionen f\u00fcr Windows?"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Wie ich <a href=\"https:\/\/ictknow-how.ch\/blog\/2022\/02\/08\/lighttpd-und-deutsche-umlaute-in-pfadnamen-funktionieren-praechtig\/\" data-type=\"URL\" data-id=\"https:\/\/ictknow-how.ch\/blog\/2022\/02\/08\/lighttpd-und-deutsche-umlaute-in-pfadnamen-funktionieren-praechtig\/\">hier<\/a> beschrieben habe, kann man <strong>lighttpd<\/strong> auch unter Windows betreiben. Leider stellt die Seite <a rel=\"noreferrer noopener\" href=\"http:\/\/lighttpd.dtech.hu\/\" target=\"_blank\">http:\/\/lighttpd.dtech.hu\/<\/a> aktuell nur eine Version v1.4.49 als Windows-Variante zum Download zur Verf\u00fcgung. Die stammt vom 11. M\u00e4rz 2018, ist also bereits 4 Jahre alt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dank <a rel=\"noreferrer noopener\" href=\"https:\/\/cygwin.com\/packages\/summary\/lighttpd.html\" target=\"_blank\">Cygwin<\/a> kann man lighttpd aber in der jeweils aktuellen Version benutzen. <br><strong>Keine Panik<\/strong>, man muss dazu keine eigene Cygwin-Umgebung mit umst\u00e4ndlichen Kommandozeilen-Befehlen und m\u00fchsamer Kompilierung verwenden. Man l\u00e4dt sich nur das f\u00fcr Windows (beinahe*) einsatzbereite Paket in der gew\u00fcnschten Version von einem der <a rel=\"noreferrer noopener\" href=\"https:\/\/cygwin.com\/mirrors.html\" data-type=\"URL\" data-id=\"https:\/\/cygwin.com\/mirrors.html\" target=\"_blank\">Cygwin Mirror-Server<\/a> in seiner N\u00e4he runter.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein konkretes Beispiel w\u00e4re:<br>https:\/\/ftp.fau.de\/cygwin\/x86_64\/release\/lighttpd\/lighttpd-1.4.64-6.tar.xz<br>Neuere Versionen wird man zuk\u00fcnftig an gleicher Stelle finden:<br><a href=\"https:\/\/ftp.fau.de\/cygwin\/x86_64\/release\/lighttpd\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/ftp.fau.de\/cygwin\/x86_64\/release\/lighttpd<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das rund 322 KB kleine *.tar.xz Archiv entpackt man z.B. mit 7-Zip oder WinRAR, es sollten zwei Verzeichnisse <code>\\etc<\/code> und <code>\\usr<\/code> mit verschiedenen Unterverzeichnissen sichtbar werden, insgesamt rund 64 Dateien in 18 Ordnern.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">* Oben schrieb ich, dass das Paket BEINAHE einsatzbereit ist. Startet man n\u00e4mlich <code>\\usr\\sbin\\lighttpd.exe<\/code> das erste Mal, poppen diverse Fehlermeldung \u00fcber fehlende *.DLL-Dateien auf. Cygwin ben\u00f6tigt f\u00fcr seine Pakete diverse Basis-DLLs (wie z.B. das .NET-Framework von Microsoft f\u00fcr viele Windows-Programme n\u00f6tig ist).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Hier die \u00dcbersicht welche 4 DLL f\u00fcr <strong>lighttpd<\/strong> fehlen und in welchen Paketen man diese auf dem Cygwin-Mirrorserver findet (f\u00fcr direkten Download z.B. <a rel=\"noreferrer noopener\" href=\"https:\/\/ftp.fau.de\/cygwin\/x86_64\/release\" target=\"_blank\">https:\/\/ftp.fau.de\/cygwin\/x86_64\/release<\/a> vor den Paketnamen stellen):<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><code>cyglightcomp.dll<\/code><\/td><td>\/usr\/bin <em>(liegt dem lighttpd Cygwin-Paket bereits bei)<\/em><\/td><\/tr><tr><td><code>cygwin1.dll<\/code><\/td><td>\/cygwin\/cygwin-3.3.4-2.tar.xz<\/td><\/tr><tr><td><code>cygpcre2-8-0.dll<\/code><\/td><td>\/pcre2\/libpcre2_8_0\/libpcre2_8_0-10.39-1.tar.zst<\/td><\/tr><tr><td><code>cygnettle-6.dll<\/code><\/td><td>\/nettle\/libnettle6\/libnettle6-3.4.1-1.tar.xz<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Die ausgepackten DLL kopiert man in das gleiche Verzeichnis wie die <code>\\usr\\sbin\\lighttpd.exe<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das sollte schlussendlich f\u00fcr die aktuelle lighttpd Version 1.4.64-6 wie folgt im Windows Dateiexplorer aussehen:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/ictknow-how.ch\/blog\/wp-content\/uploads\/2022\/02\/image-3.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1013\" height=\"227\" src=\"https:\/\/ictknow-how.ch\/blog\/wp-content\/uploads\/2022\/02\/image-3.png\" alt=\"\" class=\"wp-image-2727\" srcset=\"https:\/\/ictknow-how.ch\/blog\/wp-content\/uploads\/2022\/02\/image-3.png 1013w, https:\/\/ictknow-how.ch\/blog\/wp-content\/uploads\/2022\/02\/image-3-300x67.png 300w, https:\/\/ictknow-how.ch\/blog\/wp-content\/uploads\/2022\/02\/image-3-768x172.png 768w\" sizes=\"auto, (max-width: 1013px) 100vw, 1013px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Die lighttpd.exe bringt keine Benutzeroberfl\u00e4che mit sich<\/strong>. Wer also Start- oder Fehlermeldungen sehen will, muss (doch) eine Windows-Kommandozeile <code>cmd.exe<\/code> \u00f6ffnen. Dann sieht man beim ausf\u00fchren der <code>lighttpd.exe<\/code> die erste Fehlermeldung:<br><code>No configuration available. Try using -f option.<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wer Lust hat, kann sich durch alle erscheinenden Meldungen durchk\u00e4mpfen. Dabei geht es vor allem um die Angabe von Konfigurations- und Dateipfaden. Wer aber einfach nur einen Webserver lokal starten will, der kann die bestehende Konfigurationsdatei <code>\\etc\\defaults\\etc\\lighttpd\\lighttpd.conf<\/code> mit meiner angepasster Variante \u00fcberschreiben. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Damit das in der Praxis funktioniert muss man <br><strong>1)<\/strong> folgende zus\u00e4tzliche 7 Unterverzeichnisse in \\<code>usr\\lib\\lighttpd<\/code> manuell erstellen (im Dateiexplorer oder in der Kommandozeile):<code><br>\\cache<br>\\htdocs<br>\\logs<br>\\run<br>\\sockets<br>\\uploads<br>\\vhosts<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>2) <\/strong>Den Installationspfad in der eben kopierten <code><code>\\etc\\defaults\\etc\\lighttpd\\lighttpd.conf<\/code><\/code> mit einem Texteditor auf den eigenen, effektiv benutzten Pfad in Zeile #17 anpassen:<br><code>var.conf_dir = \"cygdrive\/C\/Temp\/T1\/etc\/defaults\/etc\/lighttpd\"<\/code><\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong>Start von lighttpd.exe<\/strong><br><code>lighttpd.exe -D -f ..\\..\\etc\\defaults\\etc\\lighttpd\\lighttpd.conf<\/code><\/p>\n\n\n\n<p class=\"has-small-font-size wp-block-paragraph\">Die verwendeten Optionen bedeuten:<br>-D don&#8217;t go to background (default: go to background) \/  = Fenster bleibt offen, bis man <kbd class=\"keyboard-key nowrap KeybKey\">CTRL + C<\/kbd> dr\u00fcckt<br>-f filename of the config-file \/ Pfad und Name der Konfigurationsdatei<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Den einmalig erscheinenden Sicherheitshinweis der Windows Firewall kann man <kbd class=\"keyboard-key nowrap KeybKey\">Abbrechen<\/kbd> (oder <kbd class=\"keyboard-key nowrap KeybKey\">Zulassen<\/kbd>, je nach sp\u00e4terem Verwendungszweck):<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><a href=\"https:\/\/ictknow-how.ch\/blog\/wp-content\/uploads\/2022\/02\/image-4.png\"><img loading=\"lazy\" decoding=\"async\" width=\"657\" height=\"459\" src=\"https:\/\/ictknow-how.ch\/blog\/wp-content\/uploads\/2022\/02\/image-4.png\" alt=\"\" class=\"wp-image-2741\" style=\"width:493px;height:344px\" srcset=\"https:\/\/ictknow-how.ch\/blog\/wp-content\/uploads\/2022\/02\/image-4.png 657w, https:\/\/ictknow-how.ch\/blog\/wp-content\/uploads\/2022\/02\/image-4-300x210.png 300w\" sizes=\"auto, (max-width: 657px) 100vw, 657px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Im Verzeichnis <code>\\logs<\/code> findet man zwei Textdateien: <code>access.log<\/code> und <code>error.log<\/code>. Beide helfen beim Analysieren, warum z.B. eine Seite nicht gefunden oder der Zugriff verweigert wird.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Im Browser ruft man nun <code>http:\/\/localhost<\/code> auf und sieht den Inhalt von <code>\\usr\\lib\\lighttpd\\htdocs<\/code>. Sinnvollerweise kopiert man also vorher irgendeine Datei wie z.B. ein <code>favicon.ico<\/code> oder eine <code>test.html<\/code> in dieses Verzeichnis.<br>Wer den Verzeichnis-Inhalt NICHT auflisten will, kann die Zeile #27<br><code>dir-listing.activate = \"enable\"<\/code> <br>in der Konfigurationsdatei <code>etc\\defaults\\etc\\lighttpd\\lighttpd.conf<\/code> deaktivieren, indem man ein # an die erste Zeilenposition setzt. <br>Konfigurations-\u00c4nderungen werden erst aktiv, wenn man <code>lighttpd.exe<\/code> stoppt (<kbd class=\"keyboard-key nowrap KeybKey\">CTRL + C<\/kbd>) und neu startet. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wer von einer <strong>403 Forbidden<\/strong>-Meldung \u00fcberrascht wird: Nur eine <code>index.html<\/code> Datei wird automatisch geladen und angezeigt. Man muss entweder eine <code>index.html<\/code> samt g\u00fcltigem HTML-Inhalt im <code>\\htdocs<\/code> Verzeichnis speichern oder den genauen Pfad und Namen zur eigenen Datei wissen, z.B. <code>http:\/\/localhost\/test.html<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/ictknow-how.ch\/blog\/4-dll-fuer-lighttpd-cygwin-plus-directory-creator-plus-conf\/\" data-type=\"URL\" data-id=\"https:\/\/ictknow-how.ch\/blog\/4-dll-fuer-lighttpd-cygwin-plus-directory-creator-plus-conf\/\" target=\"_blank\" rel=\"noreferrer noopener\"><span style=\"color: green;\">Kleine Belohnung<\/span><\/a> f\u00fcr diejenigen, die bis hierher gelesen haben:<\/p>\n\n\n<table style=\"border: none;\">\n<tbody>\n<tr>\n<td style=\"vertical-align: top; border: none;\">a)<\/td>\n<td style=\"vertical-align: top; border: none;\">Meine angepasste <code>lighttpd.conf<br \/><\/code>(ins Verzeichnis <code>\\etc\\defaults\\etc\\lighttpd\\<\/code> kopieren, anpassen gem\u00e4ss 2)<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: top; horicontal-align: left; border: none;\">b)<\/td>\n<td style=\"vertical-align: top; border: none;\">Die 4 ben\u00f6tigten cygwin-DLL, welche exakt zur lighttpd-Version v1.4.64-6 passen<br \/>(ins Verzeichnis <code>\\usr\\sbin\\<\/code>&nbsp;kopieren)<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: top; border: none;\">c)<\/td>\n<td style=\"vertical-align: top; border: none;\">Eine kleine Batch-Datei, die ausgef\u00fchrt im Verzeichnis <code>\\usr\\sbin\\<\/code> automatisch die <br \/>7 Unterverzeichnisse aus 1) in&nbsp;\\<code>usr\\lib\\lighttpd<\/code> erstellt<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: top; border: none;\">d)<\/td>\n<td style=\"vertical-align: top; border: none;\">1 x <code>favicon.ico<\/code>, 1 x <code>test.html<\/code>, 1 x <code>index.html.ORG<\/code> zum Testen ob alles funktioniert<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: top; border: none;\">e)<\/td>\n<td style=\"vertical-align: top; border: none;\">Auf Wunsch kann ich auch das komplette, fixfertige lighttpd-Paket mit a) b) und d) in einem Archiv anbieten, ein entsprechender Kommentar gen\u00fcgt<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n<div class=\"kk-star-ratings kksr-auto kksr-align-left kksr-valign-bottom\"\n    data-payload='{&quot;align&quot;:&quot;left&quot;,&quot;id&quot;:&quot;2706&quot;,&quot;slug&quot;:&quot;default&quot;,&quot;valign&quot;:&quot;bottom&quot;,&quot;ignore&quot;:&quot;&quot;,&quot;reference&quot;:&quot;auto&quot;,&quot;class&quot;:&quot;&quot;,&quot;count&quot;:&quot;0&quot;,&quot;legendonly&quot;:&quot;&quot;,&quot;readonly&quot;:&quot;&quot;,&quot;score&quot;:&quot;0&quot;,&quot;starsonly&quot;:&quot;&quot;,&quot;best&quot;:&quot;5&quot;,&quot;gap&quot;:&quot;5&quot;,&quot;greet&quot;:&quot;Rate this post&quot;,&quot;legend&quot;:&quot;0\\\/5 - (0 votes)&quot;,&quot;size&quot;:&quot;24&quot;,&quot;title&quot;:&quot;lighttpd - Neue Versionen f\u00fcr Windows?&quot;,&quot;width&quot;:&quot;0&quot;,&quot;_legend&quot;:&quot;{score}\\\/{best} - ({count} {votes})&quot;,&quot;font_factor&quot;:&quot;1.25&quot;}'>\n            \n<div class=\"kksr-stars\">\n    \n<div class=\"kksr-stars-inactive\">\n            <div class=\"kksr-star\" data-star=\"1\" style=\"padding-right: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"2\" style=\"padding-right: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"3\" style=\"padding-right: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"4\" style=\"padding-right: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"5\" style=\"padding-right: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n    <\/div>\n    \n<div class=\"kksr-stars-active\" style=\"width: 0px;\">\n            <div class=\"kksr-star\" style=\"padding-right: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n                \n\n<div class=\"kksr-legend\" style=\"font-size: 19.2px;\">\n            <span class=\"kksr-muted\">Rate this post<\/span>\n    <\/div>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p>Wie ich hier beschrieben habe, kann man lighttpd auch unter Windows betreiben. Leider stellt die Seite http:\/\/lighttpd.dtech.hu\/ aktuell nur eine Version v1.4.49 als Windows-Variante zum Download zur Verf\u00fcgung. Die stammt vom 11. M\u00e4rz 2018, ist also bereits 4 Jahre alt. Dank Cygwin kann man lighttpd aber in der jeweils aktuellen Version benutzen. Keine Panik, man &#8230; <a title=\"lighttpd &#8211; Neue Versionen f\u00fcr Windows?\" class=\"read-more\" href=\"https:\/\/ictknow-how.ch\/blog\/2022\/02\/09\/lighttpd-neue-versionen-fuer-windows\/\" aria-label=\"Mehr Informationen \u00fcber lighttpd &#8211; Neue Versionen f\u00fcr Windows?\">Weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[28,48],"tags":[223,222,221],"class_list":["post-2706","post","type-post","status-publish","format-standard","hentry","category-software","category-windows-10","tag-cygwin","tag-lighttpd","tag-webserver"],"_links":{"self":[{"href":"https:\/\/ictknow-how.ch\/blog\/wp-json\/wp\/v2\/posts\/2706","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ictknow-how.ch\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ictknow-how.ch\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ictknow-how.ch\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ictknow-how.ch\/blog\/wp-json\/wp\/v2\/comments?post=2706"}],"version-history":[{"count":0,"href":"https:\/\/ictknow-how.ch\/blog\/wp-json\/wp\/v2\/posts\/2706\/revisions"}],"wp:attachment":[{"href":"https:\/\/ictknow-how.ch\/blog\/wp-json\/wp\/v2\/media?parent=2706"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ictknow-how.ch\/blog\/wp-json\/wp\/v2\/categories?post=2706"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ictknow-how.ch\/blog\/wp-json\/wp\/v2\/tags?post=2706"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}