• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

script über web ausführen

Constan

Member
Hi ich habe mal eine Frage,

ich habe ein Script ausführbar gemacht und den code drinne

mkdir XXX

jezt lade ich es in meine htdocs Verzeichniss und will das jeder der auf meine Seite kommt beispielsweise dieses Script ausführen kann.

aber die muss ich das machen? Jemand eine Idee?
 

death

Member
hi!

ich weiß nur dass sowas mit einem cgi-skript geht.

also dein normales shellskript einfach als *.cgi im cgi-verzeichnis (cgi-bin oder so ähnlich) ablegen.
und dann die zugriffsrechte mit "chmod go+rx skript.cgi" setzen.

über
http://www.domain.de/cgi-bin/skript.cgi
müsste es dann aufrufbar sein.
 
OP
C

Constan

Member
mit sh unmbenennen in cgi klapt net.

muss ich wohl CGI lernen. oder sind das die selben befehle wie in der shell?
 
OP
C

Constan

Member
Es kommt folgener fehler

Code:
Serverfehler!

Die Anfrage kann nicht beantwortet werden, da im Server ein interner Fehler aufgetreten ist.

Fehlermeldung:
Premature end of script headers: 1.cgi

Sofern Sie dies für eine Fehlfunktion des Servers halten, informieren Sie bitte den Webmaster hierüber.
Error 500
nfcberlin.prag234.server4you.de
Mon Apr 3 20:11:43 2006
Apache/2.0.53 (Linux/SUSE)
 
OP
C

Constan

Member
ok begriffen habe ich das jetzt glaube ich aber erführt keine shell befehle aus die ich ihm festlege

ich will ja das machen :

Benutzer klickt auf button.

script erstellt mit "mkdir wewe" einen Ordner

Fertig meldung auf dem Bildschim "OK Wurde gemacht"




kann mir daführ jemand bitte ein Beispielcode geben? :cry:
 
OP
C

Constan

Member
und wenn ich das über php mache kommt immer das

Code:
Warning: shell_exec() [function.shell-exec]: Cannot execute using backquotes in Safe Mode in /srv/www/web1/html/2.php on line 3

und hier der php code

Code:
<?
$web = "web1";
$output = shell_exec("mkdir wewe");
//$output = shell_exec("ls");
echo $output;
?>
[/quote]
 

flo41

Hacker
solange du im htdocs-Ordner bleibst kannst du doch auch ganz normal mit php Verzeichnise ohne shell_exec anlegen, dachte ich?
 

sparrow

Member
Constan schrieb:
Es kommt folgener fehler

Code:
Serverfehler!

Die Anfrage kann nicht beantwortet werden, da im Server ein interner Fehler aufgetreten ist.

Fehlermeldung:
Premature end of script headers: 1.cgi

Sofern Sie dies für eine Fehlfunktion des Servers halten, informieren Sie bitte den Webmaster hierüber.
Error 500
nfcberlin.prag234.server4you.de
Mon Apr 3 20:11:43 2006
Apache/2.0.53 (Linux/SUSE)

Diese Meldung sagt dir:
Da ist ein Script, aber ich kann das Script nicht ausführen, der Header stimmt nicht.
Der Header muss ein HTML-Header sein.
Hättest du den Text des Links gelesen den ich gepostet habe wüßtest du, dass ein Bashscript mit echo den HTML-Text ausgeben muss der angezeicht werden soll.

Normalerweise würde echo den Text auf dem Bildschirm ausgeben, in diesem Fall empfängt der Browser die Ausgabe.

Ein enrsprechendes Script sollte also wie folgt beginnen:
#!/bin/sh
#
echo -e "Content-type: text/html\n"

Das dürfte für moderne Browser als Header reichen.
Mit der Ausgabe Content-type: text/html weiß der Browser: Hey, hier kommt eine Internetseite im Format HTML.

Gruß
Sparrow
 

TeXpert

Guru
sparrow schrieb:
Sorry, kleines Ausdrucksproblem meinerseits.
kein Thema, nur gerade im Bereich TCP/IP wird einfach zuviel durcheinander geworfen ;)

aber wir sind ja nicht so:

Code:
#!/bin/sh
echo Content-type: text/plain
echo
echo Hello, world
ist das klassische-Bash-CGI-Hello World...
 
OP
C

Constan

Member
Also ich habe es bin jetzt so gemacht

in der php steht

Code:
<?

$output = shell_exec("sh /srv/www/cgi-bin/1.sh");
echo $output;

?>

in der 1.sh steht

Code:
mkdir wewe

in der PHP.ini habe ich das

Code:
; Safe Mode
;
safe_mode = Off


safe_mode_gid = Off

safe_mode_include_dir =								


safe_mode_exec_dir =/srv/www/cgi-bin/


safe_mode_allowed_env_vars = PHP_


safe_mode_protected_env_vars = LD_LIBRARY_PATH




disable_functions =


disable_classes =

obwohl ich glaube alles gemacht zu haben geht das net es kommt immer

Code:
Warning: shell_exec() [function.shell-exec]: Cannot execute using backquotes in Safe Mode in /srv/www/web1/html/2.php on line 3
 

TeXpert

Guru
Oh Mann,

Constan schrieb:
Code:
<?

$output = shell_exec("sh /srv/www/cgi-bin/1.sh");
echo $output;

?>

wenn es doch schon im cgi-pfad ist, warum zum henker willst Du denn dann noch einen php-Wrapper drumrumbauen?

Code:
; Safe Mode
;
safe_mode = Off
safe_mode_exec_dir =/srv/www/cgi-bin/

ähm... wenn safe-mode off, dann bringt IMHO das exec gar nüscht... also hier noch mal php-Doku lesen

richtig wäre
Code:
#!/bin/bash
echo Content-type: text/plain
echo 
mkdir foo
und dass dann als cgi aufrufen... wobei ein mkdir im positiven Fall keien Ausgabe macht.....
 
OP
C

Constan

Member
TeXpert schrieb:

Tolle antwort, meinst du nicht mann kann auch ein bischen höflicher sein? Ich sage ja nat das problem hier macht mal. Ich habe ein Problem vorgestellt das ich habe und würde dies gerne mit anderen bereden, bzw ausdiskutieren. Ein Forum ist genau deshalb da. Anscheind solltest du dir mal überlegen was man in einen Forum macht.

Danke

Thead geschlossen suche mir eine andere Seite wo man auch mal Menschen findet.
 
Oben