raspberry pi zero: Kein Zugriff auf webserver mit lighttpd

OP #7772196

Guten Morgen,

auf meinem pi soll ein Webserver zum Einsatz kommen. Dazu habe ich den lighttpd installiert und konfiguriert.

https://raspberry.tips/raspberrypi-tutorials/raspberry-pi-als-webserver-teil-1

Mit diesem Webserver soll die gemessene Temperatur angezeigt werden. Dazu habe ich folgende Anleitung auf meinem pi umgesetzt.

https://raspberry.tips/hausautomatisierung/wetteraufzeichnung-mit-raspberry-pi-ds18b20

Leider ist es so, dass ich keinen Zugriff auf die php Seite index.php habe. => http://192.168.178.32/index.php Fehlermeldung: Not Found The requested URL was not found on this server. Apache/2.4.62 (Raspbian) Server at 192.168.178.32 Port 80

Was mir nach der EInrichtung aufgefallen ist, dass ich keinen Zugriff auf das www Verzeichnis habe. Wahrscheinlich müssen die Zugriffe für diesen Ordner und auch Dateien anders eingestellt werden.

OP #7772226

Hallo Stephan,

in der config Datei habe ich Port 80 auf 8080 bereits abgeändert.

lighttpd.conf:

server.document-root = "/var/www/html" server.upload-dirs = ( "/var/cache/lighttpd/uploads" ) server.errorlog = "/var/log/lighttpd/error.log" server.pid-file = "/run/lighttpd.pid" server.username = "www-data" server.groupname = "www-data" server.port = 8080

Wenn ich folgende IP Adresse http://192.168.178.32 starte, erscheint der Apache2 Debian Default Page.

#7772308

Dann kontrollier nochmal, ob 192.168.178.32 auch wirklich die IP vom richtigen RasPi ist... Und ob es wirklich vom Apache ausgeliefert wird (Browser-Entwicklertools, Netzwerk-Tab), oder ob es die Raspian-Default-Webseite ist, die unter /var/www/html abgelegt ist, und die jetzt eben vom lighthttpd verwendet wird.

Übrigens wirst du in deiner lighthttpd-Config noch PHP (mod_fastcgi) einschalten müssen, wenn du damit PHP-Seiten ausliefern willst.

#7772319

Zo R. schrieb:

=> ls -la /var/www/html total 8 drwxr-xr-x 2 root root 4096 Nov 11 11:57 . drwxr-xr-x 3 root root 4096 Nov 11 13:56 ..

User und Gruppe ist jeweils root. Ich habe oben schon gesagt, dass Du als Eigentümer und Gruppe www-data einstellen musst

1
sudo chown -R www-data:www-data /var/log/html"
#7772322

Schau nach ob dein lighttpd auch wirklich läuft, und welchen Port der offen hat. z.B. lsof -p $(cat /run/lighttpd.pid) oder netstat -alnp | grep lighttpd

schau nach, ob du den apache auch wirklich deinstalliert und beendet hast, und keiner mehr läuft.

ps aux | grep apache

#7772360
1
$ ps ax|grep "RöcksRödelDiWachsInneGehölzenen"
2
  18117 pts/0    S+     0:00 grep RöcksRödelDiWachsInneGehölzenen

grep sucht nach dem Suchbegriff und findet ihn auch. Als Argumant an sich selbst. Wenn Apache noch liefe, würdest du so etwas sehen:

1
$ ps ax|grep "apache"
2
   1774 ?        Ss     0:00 /usr/sbin/apache2 -k start
3
   1775 ?        S      0:00 /usr/sbin/apache2 -k start
4
   1776 ?        S      0:00 /usr/sbin/apache2 -k start
5
   1777 ?        Sl     0:00 /usr/sbin/apache2 -k start
6
   5073 ?        Sl     0:00 /usr/sbin/apache2 -k start
7
  18202 pts/0    S+     0:00 grep apache
#7772362

Zo R. schrieb:

Nach wie vor wird die apache Seite angezeigt.

Da könnte vielleicht - falls noch nicht geschehen - ein Browser-Reload (F5/Ctrl-R/…) helfen.

Es wäre auch denkbar, das der apache zwar deinstalliert wurde, jedoch mangels purge ein wenig Unrat hinterlassen hat. Und eine index.html heißt bei jedem mir bekannten Webserver gleich.

OP #7772379

Im Ordner /var/www/ habe ich mal eine info Datei erzeugt.

info.php

1
phpinfo();
2
?>

Leider gibt es hier ein Verbindungsfehler.

http://192.168.178.32/info.php

In der config Datei (sudo nano /etc/lighttpd/lighttpd.conf) habe ich auch den Port auf 8080 eingestellt und in modules den Eintrag "mod_fastcgi" hinzugefügt Ich muss noch erwähnen ich habe php installiert php5 kann ich bei mir nicht installieren.

Gast #7772384

Die Datei sollte natuerlich folgenden Inhalt haben:

1
<?php
2
phpinfo( );
3
?>

und nach Deinem eigenen Worten:

1
http://192.168.178.32:8080/info.php
#7772397

Zo R. schrieb:

Ja ist soweit alles korrekt. Ok die php Datei da habe ich noch was vergessen.

Jetzt wird "404 Not Found" angezeigt.

Warum versucht du nicht erst einmal eine einfache Minimalkonfiguration? Ohne Patch-Hack-Patch. Nur eine ›index.html‹ welche als Gruppe www-data die Rechte ›r‹ besitzt. Wenn das läuft, dann kannst du weiter machen.

Ahhh … hat sich dann erledigt.

#7772408

Zo R. schrieb:

Auf der folgenden Seite https://raspberry.tips/hausautomatisierung/wetteraufzeichnung-mit-raspberry-pi-ds18b20 wird nicht erwähnt was in der config Datei lighttpd.conf angepasst werden muss.

na, auf der Seite wird mit einem Haufen hässlicher Hacks irgendwie eine im Browser abrufbare Temperaturaufzeichnung zusammengeschustert. Da geht es NICHT um die Konfiuguration eines Webservers.

Du gehst ja auch nicht zum Aldi und möchtest dort z.B. eine Ultraschalluntersuchung durchführen lassen?

#7772769

auch wenn es ohne "Grafikschrott" irgendwie funktioniert ist und bleibt das ein hässliches Workaround-Gewürge.

Du hast offensichtlich keinerlei Erfahrung mit Webservern, vielleicht minimale Linux-Kenntnisse, wenig Erfahrung mit der Erstellung von Webseiten, ggf. auch noch wenig Programmiererfahrung.

Daher solltest du das ganze Projekt in mehrere kleine Teile aufteilen. Einen Apache oder lighttpd soweit zum Laufen zu bringen, dass er html und php ausliefern kann ist kein Vollzeitjob. Dabei kannst du dir auch gleich Kenntnisse über Benutzerrechte und -gruppen unter Linux aneignen.

Danach beschäftigst du dich zumindest grundlegend mit Webseiten (soviel wie du halt für dein Prjekt brauchst)

und dann, wenn das alles funktioniert kannst du die Temperatur- und Wetteranzeige oben drüber stülpen.


Webseiten und Apache kannst du auch vertauschen. Ich gehe davon aus, dass du Windows-User bist, da kannst du dir einen fertigen Apache-Stack (z.B. Wamp, Xamp, je nach Geschmack auch was anderes, von mir aus auch das komische Microsoft-Dings (IAS?)) installieren und lokal probieren.

P.S. Meine Lösung für meine Wetterdaten-Anzeige: Raspi + Cron + RTL433 + Influx + Grafana ;-)

OP #7773025

Hallo Daniel,

danke für deinen Beitrag. Aktuell ist es ja so, dass ich nur mal einen Temperaturwert auf einem Webserver ausgeben kann. Für die Zukunft sollen mehrer esp32 benutzt werden, diese sollen zyklisch Sensordtaen an den raspberry pi zero senden. Auf einem Webserver sollen dann die empfangen Daten visualisiert dargestellt werden. Das mit grafana wird wohl auf einem pi zero wenig Sinn machen aufgrund des geringen Speicherplatzes. Gibt es da womöglich eine andere Alternative?

#7773081

warum muss es unbedingt ein zero sein? ein Pi4 oder 5 hat wesentlich mehr Power, kann auch von einer SSD/HDD booten (afaik SD-Karte beim zero) und schafft (bei mir) locker Apache, Grafana, Influx, PiHole - und langweilt sich nebenbei noch.

#7773154

Zo R. schrieb:

Das mit grafana wird wohl auf einem pi zero wenig Sinn machen aufgrund des geringen Speicherplatzes. Gibt es da womöglich eine andere Alternative?

gnuplot ist eine scriptsprache, die auch auf einem Raspi_1 läuft, sauschnell, es gibt 1001 Anleitungen im Netz dafür. Beispiel als SVG in der Anlage.

Interessant ist auch https://gertingold.github.io/pythonnawi/graphics.html

Angehängte Dateien:
OP #7773442

Hallo,

ich habe nun mal gnuplot installiert. Folgendes habe ich mal soweit auf dem zero implementiert. Leider passiert gar nicht. Es werden nicht die entsprechenden Dateien erzeugt. Ich vermute crontab funktioniert nicht.

==> gnuplot_temp_ds1820.conf:

1
set title "Temperature DS1820"
2
set xlabel "Minutes (mins)"
3
set ylabel "Temperature (°C)"
4
set terminal png size 620,360
5
set output "/var/www/html/gnuplot_tempds1820.png"
6
set xdata time
7
set timefmt "%s"
8
set format x "%H:%M"
9
set grid
10
set key left box
11
plot "/home/pi/Temperatur/gnuplot_temp_ds1820.dat" using 1:2 title "Temp" with lines

==> gnuplot_temp_ds1820.sh:

1
#!/bin/bash
2
 
3
PLOT_CONFFILE="/home/pi/Temperatur/gnuplot_temp_ds1820.conf"
4
PLOT_DATAFILE="/home/pi/Temperatur/gnuplot_temp_ds1820.dat"
5
PLOT_DATETIME=$(/bin/date +%s)
6
PLOT_TEMP=$(/usr/bin/python /home/pi/Temperatur/get_temp_ds1820.py)
7
 
8
echo "$PLOT_DATETIME $PLOT_TEMP" >> $PLOT_DATAFILE
9
cat $PLOT_CONFFILE | /usr/bin/gnuplot

crontag -e:

1
1 * * * * /home/pi/Temperatur/gnuplot_temp_ds1820.sh
#7773448

Zo R. schrieb:

Ich vermute crontab funktioniert nicht.

Jaaa, dass ist so ein Ding mit den Vermutungen…

Ich bin übrigens extrem überrascht. Du hast es geschafft, eine sehr einfache Aufgabe in einen atemberaubend umständlichen Prozess zu konvertieren.

Da du ja sowieso ein Python Programm aufrufst:

  • Die aktuelle Zeit lässt sich dort direkt ermitteln
  • Die Sensordaten werden ja schon in Python empfangen.
  • Es existiert matplotlib mit pyplot. Die komplette Erzeugung der Grafik (an der passenden Stelle) lässt sich dort bequem erledigen.
OP #7773452

Ich habe die gnuplot Datei nochmals unter die Lupe genommen. Wenn ich folgende Zeile ausführe

1
set output "/var/www/html/gnuplot_temp_ds1820.png"

erscheint folgende Fehlermeldung:

1
 cannot open file; output not changed
2
system error: Permission denied
OP #7773483

ls -la /var/www/html/

1
drwxr-x--- 2 pizero pizero 4096 Nov 13 11:20 .
2
drwxr-xr-x 3 root   root   4096 Nov 12 14:17 ..
3
-rw-r--r-- 1 pizero pizero  947 Nov 11 20:40 index.php
4
-rw-r--r-- 1 pizero pizero   21 Nov 11 15:39 info.php
5
-rw-r--r-- 1 pizero pizero  410 Nov 11 20:24 receiveMessage.php
6
-rw-r--r-- 1 pizero pizero  644 Nov 11 20:31 requestMessage.py

ls -la /var/www/

1
drwxr-xr-x  3 root   root   4096 Nov 12 14:17 .
2
drwxr-xr-x 12 root   root   4096 Nov  4 15:38 ..
3
drwxr-x---  2 pizero pizero 4096 Nov 13 11:20 html
4
-rw-r--r--  1 root   root   1175 Nov 11 10:30 index.php
5
-rw-r--r--  1 root   root   2437 Nov 11 10:30 style.css

Jetzt habe ich auf die index.php via Webbrowser keinen Zugriff mehr. Hab da wohl in den Zugriffsrechten was geändert.

#7773489

wie ich sehe lernst du grad auf die harte Tour - schau was ich dir schon mal vorgeschlagen habe und teil das Ganze in mehrere Teilprojekte auf.

im Moment ist dein größtes Problem deine offensichtlich nicht vorhandenen Kenntnisse der Rechteverwaltung. Das musst du dringend ändern bevor es auch nur ein bisschen Sinn macht, das ganze weiter zu verfolgen.

Du willst ja auch nicht in Zukunft jedes Mal wenn eine Kleinigkeit zu ändern ist tage- oder sogar wochenlang an so Kleinigkeiten herumrätseln (um nicht zu sagen pfuschen)?

#7773493

Zo R. schrieb:

Jetzt habe ich auf die index.php via Webbrowser keinen Zugriff mehr. Hab da wohl in den Zugriffsrechten was geändert.

Mit ›Trial and Error‹ kommt man nur dann weiter, wenn man zumindest eine grobe Vorstellung hat von den Dingen die man anrichtet.

Kleiner Tipp am Rande: Nur weil checkaa2oo3 im Youtube Video bei fünfundvierzig Minuten, siebzehn Sekunden etwas selten Dämliches macht, so besteht dennoch kein Nachahmungszwang.

In /var/www/ haben:

1
-rw-r--r--  1 root   root   1175 Nov 11 10:30 index.php
2
-rw-r--r--  1 root   root   2437 Nov 11 10:30 style.css

normalerweise nichts zu suchen.

/var/www/html/ sollte rwx für den Eigner haben, rx für Gruppe und Andere.

Und Gruppe sollte natürlich www-data sein. Also (als root) im /var/www/ Verzeichnis:

1
chown root:www-data html
2
chmod 755 html

Und mach dich dringend mit den Basics vertraut.

#7773541

Norbert schrieb:

  • Es existiert matplotlib mit pyplot. Die komplette Erzeugung der Grafik (an der passenden Stelle) lässt sich dort bequem erledigen.

Der Vollständigkeit halber sei darauf hingewiesen, daß es neben der an Matlab angelehnten Matplotlib noch eine Reihe anderer Visualisierungsbibliotheken gibt, die vor allem für Webanwendungen oft besser geeignet sind. Zum Beispiel die etwas bekannteren Libraries Seaborn (das auf Matplotlib aufbaut), Bokeh oder Plotly und Plotly Express, aber auch weniger bekannte wie Altair, Pygal, Folium und, nicht zu vergessen, d3blocks, das die Fähigkeiten der bekannten Javascript-Bibliothek D3.js unter Python bereitstellt.

Viele dieser Bibliotheken bieten Features, die unter Matplotlib nicht zur Verfügung stehen, und können zum Beispiel interaktive Grafiken fürs Web erzeugen. Zudem fühlen sich die meisten davon für Python-Entwickler etwas "pythonischer" an als die an Matlab angelehnte Matplotlib. Viel Spaß!

#7773550

Ein T. schrieb:

Der Vollständigkeit halber sei darauf hingewiesen, daß es neben der an Matlab angelehnten Matplotlib noch eine Reihe anderer Visualisierungsbibliotheken gibt, die vor allem für Webanwendungen oft besser geeignet sind.

Wenn der TE nicht mal die Rechte hinbekommt, ist er damit sicher erst recht überfordert.

#7773555

Zo R. schrieb:

1
> set output "/var/www/html/gnuplot_temp_ds1820.png"
2
>
1
>  cannot open file; output not changed
2
> system error: Permission denied
3
>

Normale Benutzer dürfen nicht in /var/www/html/ schreiben. Du könntest deinen Job in der Crontab für den Apache-Benutzer ("www-data") einstellen ("crontab -u www-data -e"), so daß er mit dessen Rechten läuft. Oder Du richtest Dir ein Unterverzeichnis in /var/www/html/ ein, in das Dein Benutzer schreiben und aus dem der Apache-Server lesen darf.

Wenn Du ein Linux benutzen möchtest, halte ich es grundsätzlich für sinnvoll, Dich mit Datei- und Benutzerrechten unter Linux zu beschäftigen. Viel Erfolg!

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über ein Jahr alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.