manchmal möchte man "schnell mal" im Browser eine Datei auf der FBF oder einer USB-Platte suchen, oder einfach eine bestimmte Datei permanent via http zugänglich machen.
Ich habe mal die verschiedenen threads zum Thema durchforstet (insbes [thread=145922]diesen[/thread] mit Beiträgen von kriegaex, Spooks und matze1985), und eine simple Minimal-Lösung zusammengestellt. Hierfür gleich einen Apache installieren ist ja ein ziemlicher Overkill... schließlich bringt die busybox einen schlanken httpd mit.
Am einfachsten wäre ja, man könnte einen der 3 Webserver nutzen, die schon auf der FBF laufen (AVM, freetz, WOL). Aber das scheint komplizierter. (Frage an die wahren Experten: wer kennt sich damit besser aus, wer kann dazu einen Tipp geben?)
Also starten wir in drei einfachen Schritten unseren eigenen httpd an einem eigenen Port (zB 86), das ist auch nicht so schwer.
Dazu erzeugen wir als Erstes zunächst ein cgi-bin Verzeichnis und Alexander Kriegischs CGI-Skript (von mir leicht vereinfacht, war unschön mit FF3.5), mit dem man komfortabel durch das Dateisystem der FBF browsen kann:
Als Zweites legen wir eine leere Konfigurationsdatei an, in die wir später noch für unseren httpd Passwörter nachtragen können (wie das geht, beschreibt matze1985 [post=927639]hier[/post]).
Zuletzt legen wir nun ein Startskript an, das unseren httpd bei jedem Booten der FBF automatisch startet. Dazu kopieren wir dieses Startskript von Alexander Kriegisch im Freetz-Webinterface in das Textfeld bei Einstellungen - Freetz: rc.custom, und klicken auf "Übernehmen":
Wenn die USB-Platte schon gemounted ist, können wir das Startskript und damit den Webserver jetzt testweise einmal starten (oder einfach rebooten, das sollte ja auch gehen):
Dann sollte unser Webserver im LAN vom Browser aus schon zu erreichen sein, unter
Wer so einen rudimentären Webserver ans Internet freigeben möchte, sollte wissen, was er tut... mehr steht mit entsprechender Diskussion dazu zB [post=1210888]hier[/post], aber ich empfehle es nicht.
Viel Spaß damit!
Ulf
Ich habe mal die verschiedenen threads zum Thema durchforstet (insbes [thread=145922]diesen[/thread] mit Beiträgen von kriegaex, Spooks und matze1985), und eine simple Minimal-Lösung zusammengestellt. Hierfür gleich einen Apache installieren ist ja ein ziemlicher Overkill... schließlich bringt die busybox einen schlanken httpd mit.
Am einfachsten wäre ja, man könnte einen der 3 Webserver nutzen, die schon auf der FBF laufen (AVM, freetz, WOL). Aber das scheint komplizierter. (Frage an die wahren Experten: wer kennt sich damit besser aus, wer kann dazu einen Tipp geben?)
Also starten wir in drei einfachen Schritten unseren eigenen httpd an einem eigenen Port (zB 86), das ist auch nicht so schwer.
Dazu erzeugen wir als Erstes zunächst ein cgi-bin Verzeichnis und Alexander Kriegischs CGI-Skript (von mir leicht vereinfacht, war unschön mit FF3.5), mit dem man komfortabel durch das Dateisystem der FBF browsen kann:
Code:
# CGI-Verzeichnis anlegen:
mkdir /var/media/ftp/uStor01/cgi-bin/
# CGI-Datei erzeugen:
cat > /var/media/ftp/uStor01/cgi-bin/index.cgi << EOF
#!/bin/sh
echo -en "Content-Type: text/html\r\n\r\n"
cat << EOF
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Index of ${QUERY_STRING}</title>
<style type="text/css"></style>
</head>
<body style="font-family:monospace">
<h2>Index of ${QUERY_STRING}</h2>
<table cellspacing="2" border="0">
<tr align="left"><th>Name</th><th> Last modified</th><th> Size</th></tr>
<tr><td colspan="3"><hr></td></tr>
<tr><td>$([ "$QUERY_STRING" == "/" ] || echo '<a href="..">..</a>')</td></tr>
$(
exec 2>/dev/null
date_format1="[A-Z][a-z]{2} [A-Z][a-z]{2} [ 123][0-9] [0-9]{2}:[0-9]{2}:[0-9]{2} [0-9]{4}"
replace="<tr><td><a href='\3'>\3<\/a><\/td><td>\ \ \2<\/td><td align=right>\ \ \1<\/td><\/tr>"
date_format2="([A-Z][a-z]{2} [A-Z][a-z]{2} ) ([0-9] [0-9]{2}:[0-9]{2}:[0-9]{2} [0-9]{4})"
ls -lLep ../${QUERY_STRING} \
| ([ "$QUERY_STRING" == "/" ] && grep -v 'lost+found' || cat) \
| awk '{printf("%5d %s\n", NR,$0)}' \
| sed -r 's/^([0-9 ]+ d)/X \1/' \
| sed -r 's/^([0-9 ]+)/Y \1/' \
| sort \
| sed -r 's/^([^ ]+ +){6}(.*)/\2/' \
| sed -r 's/^[0-9]+(.*)\/$/---\1/' \
| sed -r "s/^([-0-9, ]+) ($date_format1) +(.*)$/$replace/" \
| sed -r "s/$date_format2/\1\ \2/"
)
</table>
</body>
</html>
EOF
# CGI-Skripte muß man ausführbar machen:
chmod +x /var/media/ftp/uStor01/cgi-bin/index.cgi
Als Zweites legen wir eine leere Konfigurationsdatei an, in die wir später noch für unseren httpd Passwörter nachtragen können (wie das geht, beschreibt matze1985 [post=927639]hier[/post]).
Code:
echo > /var/tmp/flash/httpd-own.conf
Zuletzt legen wir nun ein Startskript an, das unseren httpd bei jedem Booten der FBF automatisch startet. Dazu kopieren wir dieses Startskript von Alexander Kriegisch im Freetz-Webinterface in das Textfeld bei Einstellungen - Freetz: rc.custom, und klicken auf "Übernehmen":
Code:
#Webserver starten wenn Verzeichnis existiert.
#Schleife sucht im abstand von 5 Sekunden nach HOMEDIR
{
HOMEDIR="/var/media/ftp/uStor01"
while [ ! -d "$HOMEDIR" ]; do sleep 5; done
httpd -p 86 -h "$HOMEDIR" -c "/var/tmp/flash/httpd-own.conf"
} &
Wenn die USB-Platte schon gemounted ist, können wir das Startskript und damit den Webserver jetzt testweise einmal starten (oder einfach rebooten, das sollte ja auch gehen):
Code:
/var/tmp/flash/rc.custom
Dann sollte unser Webserver im LAN vom Browser aus schon zu erreichen sein, unter
Code:
http://fritz.box:86
Wer so einen rudimentären Webserver ans Internet freigeben möchte, sollte wissen, was er tut... mehr steht mit entsprechender Diskussion dazu zB [post=1210888]hier[/post], aber ich empfehle es nicht.
Viel Spaß damit!
Ulf
Zuletzt bearbeitet: