Archiv verlassen und diese Seite im Standarddesign anzeigen : FUNKTION uebers WEB
Hallo,
ich mochte ueber einen Button im Web eine Funktion (cp) auf dem Server ausfuehren.
Wie realisiere ich das?
War da nicht etwas mit perl und cgi?
Kann mir jemand helfen?
(1) ja
(2) in dem Perl-Script ein system () oder ein qx () ausführen.
ach ja - und je nach dem, was kopiert werden soll - sudo verwenden, da der Kopierprozess unter dem Apacheuser läuft...
Was ist jetzt der perl- und der cgi-Teil?(kurzes Hintergrundwissen!)
erstelle ein perl-script, das den Kopiervorgang ausführt und lege das in ein VZ, in dem der Apache CGIs ausführen darf, gib dem Script die entsprechenden Rechte und konfiguriere den Apache entsprechend.
für weiteres:
http://de.selfhtml.org/perl/index.htm
und
http://httpd.apache.org/docs/1.3/howto/cgi.html
Da hier eine Begriffliche Verwirrung zu bestehen scheint:
cgi ist die Abkürzung für "Common Gateway Interfaces" und bezeichnet eine Schnittstelle; perl ist eine Programmiersprache, mit der man diese Schnittstelle nutzen kann *)
Solltest du Perl nicht mögen (oder gar Angst vor explodierten ASCII-Fabriken haben ^^) kannst du das Programm auch in C, php, python, ruby oder vielen anderen Sprachen schreiben *g*.
Es wäre übrigends sehr hilfreich, wenn du genau beschreiben könntest, was auf dem Webserver geschehen soll. Je nachdem, was von wo nach wo kopiert werden muss, und wie genau es implementiert ist, reisst du nämlich Sicherheitslücken in den Webserver, in denen ein 747 wenden könnte :)
Du könntest es so machen (in php, für perl bin ich gerade zu faul):
(erwartet die Variablen $von und $nach aus einem Formular)
system ("sudo cp $von $nach");
Der Benutzer, unter dem Apache läuft, muss via "visudo" natürlich berechtigt sein, "cp" ohne passwort mit rootrechten auszuführen.
MiGo
P.S.: Wenn du das übrigends einfach so übernimmst, war das mal dein Webserver ^^
* http://de.wikipedia.org/wiki/Common_Gateway_Interface
Hallo,
es funktioniert, aber ein kleines Problem wenn ich das script ueber Http ausfuehre dann bringt der Server obwohl es funktioniert hat folgende Meldung:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
aber in den Logfile(/var/log/httpd/error) finde ich nichts!
vermutlich liefert Dein Script keinen konformen html-header zurück...
stefan-tiger
02.08.05, 11:11
Über cgi kannst du auch einfach Shell-Scripts ausführen.
html-header wird nicht zurueck geliefert.
Wie Sieht dieser aus?
hast Du den Text gelesen?
http://httpd.apache.org/docs/1.3/howto/cgi.html
scheinbar nicht komplett...
http://httpd.apache.org/docs/1.3/howto/cgi.html#writingacgiprogram
ist der relevante Part...
edit: Wunschlos-glücklich-Link ergänzt
nein aber ich habs gefunden
nein
naja, nur um ein bisschen farbigen und unterstrichenen Text in die Postings zu bekommen habe ich den dort nicht reingeschrieben ;-)
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.