ubuntuusers.de

index.html, Auslesen von Dateien in Ordner, selbständiges editieren.

Status: Gelöst | Ubuntu-Version: Ubuntu 16.04 (Xenial Xerus)
Antworten |

TimeMen

Anmeldungsdatum:
16. April 2016

Beiträge: Zähle...

Hallo Community,

Habe nach vielen Umständen es endlich geschafft einen Apache2 Server auf meinem PC aufzusetzten. Leider klappt die Verzeichnisstruktur Ansicht nicht. Aber die fand ich eh nicht schön. Darum habe ich meine index.html ein bisschen editiert und ein ähnliches Aussehen "erschaffen". Hab die Dateien verlinkt und noch in welchem Verzeichnis die liegen, und wie groß sie sind hingeschrieben. Nun will ich aber nicht jede Datei von Hand in die index.html einbinden. Darum meine Frage:

Ist es möglich, dass die index.html jedesmal wenn ich die index.html im Browser neu lade, das Server Verzeichnis auf neue Dateien überprüft, und diese dann eigenständig einbindet, den Pfad und die Größe mit angibt? Also dass es ungefähr so aussieht?

–- Dateiname –- –- Dateipfad –- –- Größe –- (Als Überschriften, die ja am Anfang einfach in der index.html stehen)

phpinfo.php /srv/http/phpinfo.php 21KB

date.php /srv/http/date.php 32KB

Wenn dann zum Beispiel clock.php im Verzeichnis /srv/http/ gespeichert wird, soll die index.html diese Datei auch wie oben gezeigt in sich selbst eintragen.

Ist das überhaupt möglich? Oder ist das anders einfacher zu realisieren? Und wenn ja wie? Habe leider relativ wenig Ahnung von HTML und PHP (Bin dabei zu versuchen es zu verstehen). Darum habe ich keine Ahnung ob das was ich beschrieben habe unmöglich ist.

Wenn ihr nicht nachvollziehen könnt was ich meine: Ich meine dieses Index of / bei FTP Servern.

Freue mich auf Antworten. LG TimeMen

ChickenLipsRfun2eat Team-Icon

Anmeldungsdatum:
6. Dezember 2009

Beiträge: 12067

Hallo!

Möglich ist das auf ungefähr drölfzigtausend Arten ☺

Version 1: Die Seite soll eher statisch sein, neue Dateien werden zwar regelmäßig eingefügt, aber echte Dynamik ist unnötig.

  • Erstelle dir einen "Rahmen" für die index.html, welche den Kopfteil enthält und

  • lege dir ein Script zum automatischen Auslesen des Verzeichnisses an, welches zunächst o.g. Kopfteil in die Datei schreibt

  • und erstelle dir einen Fußteil, der die Seite abschließt. Dies ist automatisch auch das Scriptende.

Ausführbar wäre das Ganze manuell und/oder per cronjob einmal täglich, wöchentlich, usw.

Vorteil: Du hast lediglich eine statische Seite und brauchst dir um php keine Sorgen machen

Version2: PHP

  • Erstelle eine index.php, welche den Pfad samt aktueller Dateien und Infos einliest und innerhalb der Seite die Infos entsprechend einfügt.

Vorteil: Diese Seite wäre deutlich flexibler, würde Inhalte bei jeder Aktualisierung aber neu einlesen. Bedeutet: Unnötige Zugriffe. Diese kann man aber auch mit PHP und der Verwendung von Zeitstempeln, etc. unterbinden

Funktionieren tut beides. Ich tendiere allerdings zu Version a, weil sie meistens reicht.

Minimalbeispiel:

1
2
3
4
5
6
7
8
#!/bin/bash
#Kopf der Seite:
echo "<!DOCTYPE html><html><head><title>index von mir</title></head><body>" > index.html
#Dateien einlesen
Suchpfad=/PFAD/ZU/DATEIEN
find "$Suchpfad" -type f -exec printf "<a href=\"{}\">"{}"</a><br />\n" \; >> index.html
#Ende
echo "</body></html>" >> index.html

Infos zum Auslesen unter find

/edit: Suchpfad hinzugefügt

TimeMen

(Themenstarter)

Anmeldungsdatum:
16. April 2016

Beiträge: 22

Hey,

Bin ziemlicher Anfänger was PHP und HTML betrifft, daher werde ich morgen wahrscheinlich nochmal auf dich zurückkommen wenn ich irgendwo hängen bleibe. Danke erstmal für die Antwort ☺ Werde mir das morgen mal anschauen und den Link zum Wiki durchlesen.

Mal sehen wann ich mich dann endlich meinem Arduino widmen kann ^^

LG TimeMen Schönen Abend/Nacht noch 😀

misterunknown Team-Icon

Ehemalige
Avatar von misterunknown

Anmeldungsdatum:
28. Oktober 2009

Beiträge: 4403

Wohnort: Sachsen

Dein Vorhaben, eine Dateiliste anzeigen zu lassen, lässt sich mit vielen Mitteln bewerkstelligen.

  1. mod_autoindex: Das Apachemodul ist IMHO per default aktiviert und zeigt die bekannte "Index of /" Seite an. Diese Seite lässt sich auch stylen.

  2. PHP: Du kannst einfach ein PHP-Skript schreiben, was das für dich übernimmt. Ich habe mal einen kleinen Filemanager in PHP geschrieben, den ich für solche Aufgaben nutze.

  3. h5ai: ein moderneres Index-Skript, welches wirklich gut aussieht.

TimeMen

(Themenstarter)

Anmeldungsdatum:
16. April 2016

Beiträge: 22

Hallo misterunknown ☺ Danke für die Links.

h5ai hat mir nicht so gefallen, aber den Filemanager den du verlinkt hast habe ich mal ausprobiert. Sieht klasse aus, und ist richtig einfach einzubinden. Top!

Liebe Grüße TimeMen

misterunknown Team-Icon

Ehemalige
Avatar von misterunknown

Anmeldungsdatum:
28. Oktober 2009

Beiträge: 4403

Wohnort: Sachsen

TimeMen schrieb:

Sieht klasse aus, und ist richtig einfach einzubinden. Top!

Beachte, dass du den Zugriff auf die Datei von außen beschränken musst, da man auch Dateien hochladen kann etc. 😉 Das ist vielleicht noch nicht so relevant, wenn du dir auf deiner lokalen Maschine einen Webserver installiert hast, aber spätestens wenn das Skript aus dem Internet erreichbar ist, sollte zumindest eine Basic-Auth davor hängen 😉

TimeMen

(Themenstarter)

Anmeldungsdatum:
16. April 2016

Beiträge: 22

Ich benutze das Ganze nur Lokal, um ein bisschen mit meinem Ethernet Shield für den Arduino, und PHP Scripten zu spielen. Und um meine Sketches auch von anderen PC's im Haushalt erreichbar zu machen.

misterunknown Team-Icon

Ehemalige
Avatar von misterunknown

Anmeldungsdatum:
28. Oktober 2009

Beiträge: 4403

Wohnort: Sachsen

TimeMen schrieb:

Ich benutze das Ganze nur Lokal, um ein bisschen mit meinem Ethernet Shield für den Arduino, und PHP Scripten zu spielen. Und um meine Sketches auch von anderen PC's im Haushalt erreichbar zu machen.

Dafür ist er in der Tat geeignet. Der Text-Editor hat sogar Syntax-Highlighting eingebaut 😉

TimeMen

(Themenstarter)

Anmeldungsdatum:
16. April 2016

Beiträge: 22

Hab noch zwei Fragen an dich:

1. Ich kann die Dateien im Dateimanager weder bearbeiten, noch löschen, noch sonstewas, denn ich bekomme jedesmal ne rote Errormeldung, dass diese Aktion nicht funktioniert. 2. Ist es möglich Dateien auszublenden? Also wenn ich zum Beispiel 123.html in meinem Serververzeichnis habe, die aber nicht im Filemanager angezeigt bekommen möchte. Geht das? Reicht das schon, wenn ich die Datei im Verzeichnis unsichtbar mache?

Liebe Grüße TimeMen

misterunknown Team-Icon

Ehemalige
Avatar von misterunknown

Anmeldungsdatum:
28. Oktober 2009

Beiträge: 4403

Wohnort: Sachsen

TimeMen schrieb:

1. Ich kann die Dateien im Dateimanager weder bearbeiten, noch löschen, noch sonstewas, denn ich bekomme jedesmal ne rote Errormeldung, dass diese Aktion nicht funktioniert.

Dann hat der Webserver vermutlich nicht die erforderlichen Rechte zum bearbeiten der Datei. Wie sehen die Rechte aus? Ich bin sowieso gerade dabei den Code zu überarbeiten, perspektivisch sollten aussagekräftigere Fehlermeldungen kommen 😉

2. Ist es möglich Dateien auszublenden?

Du kannst Dateien, wie unter Linux üblich, verstecken, indem du einen führenden Punkt als Dateiname vergibst. Innerhalb des Skripts ($config-Array) kannst du dann einstellen, ob versteckte Dateien angezeigt werden sollen oder nicht.

Antworten |