Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
-
Lui2004
- Beiträge: 5
- Registriert: 20.03.2011 12:51:51
Beitrag
von Lui2004 » 20.03.2011 13:03:11
hi zusammen habe ein kleines problem womit ich schon ca 2 tage rum mache und per google auch nichts gutes gefunden womit ich erfolgreich war.
wenn ich per putty die shell ausführen geht der befehl,hoffe ihr könnt mir helfen
System: Linux cccam-server 2.6.32-5-686
debian 6 ( squeeze )
PHP Version 5.3.3-7
Apache2
mein php script ( Rechte 755 ):
Code: Alles auswählen
<?
system('cd /var/www/ipc/page/; ./cccam-stop.sh ');
?>
Bash script ( Rechte 755 ):
gruss
Danke schon mal
-
DeletedUserReAsG
Beitrag
von DeletedUserReAsG » 20.03.2011 13:58:25
She-Bang-Zeile fehlt?
cu,
niemand
-
Lui2004
- Beiträge: 5
- Registriert: 20.03.2011 12:51:51
Beitrag
von Lui2004 » 20.03.2011 14:08:13
die wäre ?
so ?
Edit: eingefügt es pasiert immer noch nichts wie gesagt die sh datei mit ausführung per putty geht einwandfrei
nur über php macht das mir probleme
danke
-
feltel
- Webmaster
- Beiträge: 10458
- Registriert: 20.12.2001 13:08:23
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Leipzig, Germany
-
Kontaktdaten:
Beitrag
von feltel » 20.03.2011 15:20:11
Für PHP-Scripts wäre es
Dazu muss aber
php5-cli installiert sein. Alternativ kannst dann das Script auch über
starten.
-
Lui2004
- Beiträge: 5
- Registriert: 20.03.2011 12:51:51
Beitrag
von Lui2004 » 20.03.2011 17:45:19
hi
danke für eure antworten.
php5-cli habe ich schon die aktuelle drauf.
ich will das die die commandos über ein button laufen lassen,wenn ich den button drück,soll die php denn befehl weiter an sh weitergeben damit der prozess beendet wird
wo muss ich genau diese zeile einfügen ?
oder mir ein beispiel machen bzw meine sachen von oben als beispiel nehmen wie das aussehen soll
gruss und Danke
-
Lui2004
- Beiträge: 5
- Registriert: 20.03.2011 12:51:51
Beitrag
von Lui2004 » 21.03.2011 15:22:32
hi
keine mehr ein tipp ?
gruss
-
bmario
- Beiträge: 1257
- Registriert: 05.09.2007 12:15:47
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Dresden
Beitrag
von bmario » 21.03.2011 15:52:20
Probiere es mal so:
Code: Alles auswählen
<?php
// (Fast) alle Fehler anzeigen
error_reporting(E_ALL);
echo '<pre>';
// Ausgabe von system() anzeigen
echo system('/var/www/ipc/page/cccam-stop.sh ');
echo '</pre>';
?>
Wenn das nicht gehen sollte, glaube ich das es an den Rechten liegt. Darf den jeder das Programm "c" ausführen?
Mal unter PuTTY mit "su www-data" zum "Apache werden" und das Skript noch mal testen!
Nichts zu tun ist viel besser,
als mit viel Mühe nichts zu schaffen. - Laotse
-
Lui2004
- Beiträge: 5
- Registriert: 20.03.2011 12:51:51
Beitrag
von Lui2004 » 21.03.2011 16:26:11
hi
danke für deine hilfe
habe mal als erstes das mit den rechten versucht und gleube es liegt wirklich daran
auszug von putty:
Code: Alles auswählen
root@server ~ > su www-data
\[\033[1;33m\]\u\[\033[1;37m\]@\[\033[1;32m\]\h\[\033[1;37m\] \[\033[1;31m\]\w \[\033[1;37m\]> \[\033[0m\]
\[\033[1;33m\]\u\[\033[1;37m\]@\[\033[1;32m\]\h\[\033[1;37m\] \[\033[1;31m\]\w \[\033[1;37m\]> \[\033[0m\]c stop
/bin/c: Zeile 31: /var/log/ipc/CCcam.OK: Datei oder Verzeichnis nicht gefunden
pkill: 1376 - Operation not permitted
pkill: 1376 - Operation not permitted
CCcam : gekillt
Cron : beendet
/etc/init.d/cron: 103: start-stop-daemon: not found
\[\033[1;33m\]\u\[\033[1;37m\]@\[\033[1;32m\]\h\[\033[1;37m\] \[\033[1;31m\]\w \[\033[1;37m\]> \[\033[0m\]cd var/www/ipc/page
cd: 3: can't cd to var/www/ipc/page
\[\033[1;33m\]\u\[\033[1;37m\]@\[\033[1;32m\]\h\[\033[1;37m\] \[\033[1;31m\]\w \[\033[1;37m\]> \[\033[0m\]cccam stop
/bin/cccam: Zeile 31: /var/log/ipc/CCcam.OK: Datei oder Verzeichnis nicht gefunden
pkill: 1376 - Operation not permitted
pkill: 1376 - Operation not permitted
CCcam : gekillt
Cron : beendet
/etc/init.d/cron: 103: start-stop-daemon: not found
\[\033[1;33m\]\u\[\033[1;37m\]@\[\033[1;32m\]\h\[\033[1;37m\] \[\033[1;31m\]\w \[\033[1;37m\]> \[\033[0m\]
-
alexander_ro
- Beiträge: 298
- Registriert: 16.01.2006 17:44:21
- Lizenz eigener Beiträge: GNU General Public License
Beitrag
von alexander_ro » 22.03.2011 14:02:07
Ich habe das immer so gemacht:
Code: Alles auswählen
#!/usr/bin/php
<?php
// Evtl. ins richtige Verzeichnis wechseln.
chdir ('/home/<user>');
// Shell Kommando zusammen setzen.
$Befehl = "/bin/ls";
exec ($Befehl, $Ausgabe, $ReturnCode);
if ($Ausgabe[0] != "")
foreach ($Ausgabe as $Index => $Text)
print $Text . "\n";
unset ($Ausgabe);
if ($ReturnCode != 0)
{
print " Irgendwas ist kaputt ... \n";
exit (1);
}
?>
Sollte sich in der Kommandozeile einfach aufrufen lassen.
Bei Shellscripten mußt Du darauf achten das die Verzeichnisse stimmen relativ zu dem Verzeichnis in dem Du das Script aufrufst und das der User der es Aufruft auch die Berechtigungen dafür hat. Am einfachsten ist es wenn Du den Pfad absolut an gibst also ausgehend vom Root-Verseichnis.
[Edit]
Ist mir grade noch eingefallen: bei der ersten Zeile musst Du darauf achten das der Text in Spalte 1 beginnt.
[/Edit]
Alexander