PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kleiner Webserver gesucht



Maruu
03.11.04, 10:11
Hallo!

Ich hab nen DSL-Router zu hause und seit gestern hab ich auch Zugriff per Telnet auf den hinbekommen. Es läuft ein kleines Linuxsystem drauf. Nunja also ps axl gibt mir aus das ein Dienst namens websrv drauf läuft der ist denke ich mal für das Webinterface also läuft schon ein kleiner Webserver. Aber ich würde gern noch einen auf einem anderen Port laufen lassen damit ich Daten von mir zu verfügung stellen könnte.
Meine Frage ist nun gibt es irgendeinen Webserver der nicht groß installiert werden muss den ich in einen Ordner paken kann da ich auf viele Ordner keinen Schreibzugriff hab da sie ReadOnly gemountet sind. Also irgendwas das ich in nen Ordner pack und ausführe??

MFG

Maruu

PS: Zu groß sollte es nicht sein hab kein plan wieviel Speicher frei ist da df folgendes ausgibt
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/mtdblock/0 2880 2880 0 100% /
Aber ich kann dateien erstellen und was reinschreiben mount gibt folgendes aus:
/dev/mtdblock/0 on / type squashfs (ro)
none on /dev type devfs (rw)
proc on /proc type proc (rw)
ramfs on /var type ramfs (rw)

Tomek
03.11.04, 10:21
Was muss der Webserver den können? Vielleicht ist thttpd (http://www.acme.com/software/thttpd/) das richtige für dich.

Maruu
03.11.04, 13:19
Hallo!

Ja sowas in die Richtung is schonmal nicht schlecht, aber gibts sowas auch vorkompiliert weil leider kein Komplier auf dem Router is.
Oder kann ich den irgendwie noch draufbvringen???

MFG

Maruu

Tomek
03.11.04, 13:44
Kompiliere die Sourcen von thttpd auf einem anderen Server statisch. Dann kannst du die fertigen Binaries auf dem anderen Server ausführen.

Maruu
03.11.04, 14:17
Ok das kann ich mal versuchen. Da mach ich dann ganz normal ./configure makae make install oder?? und welche Dateien muss ich dann mitnehmen zum router??

MFG

Maruu

Tomek
03.11.04, 14:27
Um das statisch zu kompilieren sind ein oder mehrere Parameter beim Configure-Prozess nötig. Meistens hilft dabei ./configure --help

Maruu
03.11.04, 15:28
So ich hab jetzt auf nem anderen Linux PC folgendes gemacht die Sourcen heruntergeladen, dann ./configure --enable-static=yes dann make dann den kompletten Ordner als tar File gepakt. Dieses auf den Router geladen entpackt, und dann ./thttpd eingegeben und dann kommt:


# ./thttpd
./thttpd: 1: Syntax error: "(" unexpected

Hab jetzt kein Plan was los is.

MFG

Maruu

tillb
03.11.04, 18:46
Wenn du PHP hast finde ich Nanoweb (http://nanoweb.si.kz/) ganz lustig.

Ansonsten nimm doch Cheetah (http://www.neuro-tech.net/archives/000044.html). Kleiner gehts kaum.

Maruu
03.11.04, 19:10
Leider hab ich noch nicht ein mal einen gcc oder cc.
Hab also Cheeta auch probiert auf nem Linuxrechner kompiliert und das dann auf den Router gehauen und auch hier die Meldung:


# ./cheetah --help
./cheetah: 1: Syntax error: "(" unexpected


Naja hab kein Plan was es sein kann.

MFG

Maruu

jhallier
03.11.04, 19:40
Hast du denn für die richtige Hardware kompiliert ??? Auf einem DSL-Router werkelt bestimmt kein x86-Prozessor !

Maruu
03.11.04, 20:15
Jo hab nach ein bisschen suchen folgendes gefunde:
Die Fritz!Box Fon ist um die AR7-Variante TNETD7300(A)GDW aufgebaut. Darin enthalten sind MIPS 4KEc Prozessor, Kommunikationsprozessor (TI DSP) für ADSL Interface, USB Slave Interface, GPIO-Ports (LED-Ansteuerung) und Ethernet. Unterstützt wird der Prozessor bei seiner Arbeit von einem ICSI IC42S16800-7T oder Infineon HYB39S128160CT-7.5 SDRAM (16MB) als Hauptspeicher und einem 29LV320ATTC-70 (4MB) Flash für die Firmware etc.

Also ein MIPS 4KEc Prozessor, nur wie kann ichd as für den kompilieren??
Gibts da Emulatoren oder sowas???

MFG

Maruu

PS: Ich hab die WLAN Version die hat neben dem WLan noch nen 32MB Ram anstatt 16 MB

jhallier
03.11.04, 20:36
Auf Anhieb kann ich nicht weiterhelfen, hab das unter Linux selbst noch nicht gemacht, aber da ich weiß, daß der gcc in der Lage ist, für andere Prozessoren Code zu erzeugen, würde ich da mal weiterforschen.
Gruß -
jhallier

tictactux
03.11.04, 21:39
Was für Tools sind denn auf dem System? Vielleicht kann man
eine Lösung in einer Script-Sprache verwenden (perl,awk,bash/csh,...).
Ein einfacher Server mit GET/PUT/POST sollte in jedem der obigen
machbar sein (und ist in den ersten beiden bestimmt schon X-fach gemacht
worden ;)

Gruss,
Wolfgang

Maruu
03.11.04, 21:56
also es ist ein BusyBox System das heisst das es eine Datei namens BusyBox gibt die viele Befehle enthält. In der aktuellen Firmware sind es:

ash, basename, busybox, cat, chmod, clear, cmp, cp, date, df,
dmesg, du, echo, env, false, fgrep, find, free, grep, hostname,
id, ifconfig, init, insmod, ip, kill, killall, klogd, ln, logger,
login, logread, ls, lsmod, mkdir, mkfifo, mknod, modprobe, more,
mount, mv, netstat, nslookup, pidof, ping, ps, pwd, reboot, reset,
rm, rmdir, rmmod, route, sed, sh, sleep, stty, sync, syslogd,
tar, tee, telnetd, test, tftp, touch, tr, traceroute, true, umount,
uname, uptime, vi, wget, which, xargs

So und dann gibt es noch so als Programme:
websrv und cpu, wstart, netio

Naja leider nix wie awk oder so dabei.

Vielleicht hilfts ja.

MFG

Maruu

tictactux
03.11.04, 22:54
Na also, wer sagt's denn ;)

http://awk.geht.net/htdocs/contrib/sedhttpd/README.html
http://awk.geht.net/htdocs/contrib/sedhttpd/sedhttpd0.2.txt

that's hacking !
(schön daß es Google gibt ;) )

Maruu
03.11.04, 23:11
Naja hab mal die File kopiert und auf dem Router erstellt, dann ein sed httpd gemacht aber er bringt nen Fehler:

sed: bad format in substitution expression

Dohh wat kann dat sein??

MFG

Maruu

tictactux
03.11.04, 23:36
Naja hab mal die File kopiert und auf dem Router erstellt, dann ein sed httpd gemacht aber er bringt nen Fehler:

sed: bad format in substitution expression

Dohh wat kann dat sein??

MFG

... so war das nun nicht gemeint. Ich dachte, Du könntest sed-Quellcode
lesen :rolleyes:

Ich hab gerade kurz reingeschaut: unverändert wird das sicher nicht
laufen, und ein universeller HTTP-Server ist das auch nicht.
Die Dateien die er via HTTP 'served' sind am Ende des Scripts hart codiert
(d.h. wörtlich angegeben), wie auch die URLs unter denen er diese liefert.

Also absolut elementar.

Weiterhin sollte klar sein, daß Du den Namen dieses Scripts in
sowas wie /etc/inetd.conf als Dienstprogramm für das http-Protokoll
eintragen mußt. Evtl. muß das http-Protokoll (80) auch noch in
/etc/protocols eingetragen werden (tja, das ist nun mal kein
ausgewachsenes Unix). Dies ist also nichts, was Du selber startest
(es sei denn, Du fütterst ihn über stdin).

Wenn Dir das alles nichts sagt, ist dies nicht die richtige Lösung
für Deinen Einsatz - ist eben ein Hack ;)

Mir scheint auch, daß der sed auf Deinem System kein
vollwertiger ist:


sed: bad format in substitution expression

wahrscheinlich kann er nur literale Strings ersetzen, und kennt
das String-Anfangsymbol '^' nicht. Ist wohl ein Link auf
busybox.

Also sorry, die Idee war an sich gut gemeint ;)

Maruu
04.11.04, 11:34
jap hatte leider noch nie was mit sed zu tun.
Des weiteren komm ich an /etc garnicht ran da es nicht rw gemountet ist.
Mhhm muss mir also noch was anderes einfallen lassen.

MFG

Maruu