php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 30.12.2004, 11:01  
Gast
 
Beiträge: n/a
Standard [Erledigt] shell script ausführen

Hi,

im Anfänger Forum habe ich leider keine Antwort bekommen. Jetzt probiere ich es mal hier!

ich möchte ein script auf meinem Webserver (Debian Linux) ausführen.
Funktionieren tut z. B. ein
shell_exec ("cp datei1 datei2");
aber wenn ich
shell_exec("mache_irgendwas.script");
anstoße, dann passiert nichts.
Habe ich ein Problem auf der Linuxseite oder mache ich in php was falsch.

Gruß Bernd
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 30.12.2004, 11:03  
Gast
 
Beiträge: n/a
Standard

Vermutlich liegt dein Script nicht im aktuellen Suchpfad und wird deswegen nicht gefunden. Versuche es mal mit absoluten oder relativen Pfaden.

Gruß
phpfan
  Mit Zitat antworten
Alt 30.12.2004, 11:36  
Gast
 
Beiträge: n/a
Standard Re: shell script ausführen

Zitat:
Zitat von ingel
aber wenn ich
shell_exec("mache_irgendwas.script");
anstoße, dann passiert nichts.
a. ist das Script 'mache_irgendwas.script' ausführbar (execute Flag)
b. existiert im Script eine shebang Zeile mit einem gültigen Scriptinterpreter?
  Mit Zitat antworten
Alt 31.12.2004, 14:43  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von meikel
Zitat:
Zitat von ingel
aber wenn ich
shell_exec("mache_irgendwas.script");
anstoße, dann passiert nichts.
a. ist das Script 'mache_irgendwas.script' ausführbar (execute Flag)
b. existiert im Script eine shebang Zeile mit einem gültigen Scriptinterpreter?
1. Das script liegt im selben Verzeichnis. Ich habe es aber mit absolutem Pfadnamen angesprochen. Also gefunden wir es dann wohl.
2. X Flag ist gesetzt. Ich kann es ja schliesslich auch von der shell aus starten. Da macht es ja auch das was es soll. (maildirmake)
Ich weiß nicht, was eine shebang Zeile ist. Brauche ich die, wenn das script von der shell aus läuft?
TIA
Bernd
  Mit Zitat antworten
Alt 31.12.2004, 15:47  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.034
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Für welchen Benutzer hat das Script Execute-Berechtigung? Aus PHP wird das Script wahrscheinlich durch einen andern Benutzer ausgeführt, als wenn du es aus der Shell startest. Versuch mal folgendes (ich habe Solaris, unter Linux sollte das aber genau so gehen):
Code:
$user = shell_exec('id');
echo "$user
";
$berechtigung = shell_exec('ls -l mache_irgendwas.script');
echo "$berechtigung
";
Dann siest du, ob der User und die Berechtigungen zusammen passen. Und die shebang -Zeile ist die erste Zeile im Script, mit der folgenden Form:
Code:
#!/bin/bash
Das ist hier nur ein Bespiel, die ersten Beiden Zeichen sind fix, der Rest ist der Interpreter (inkl. Pfad) deines Scripts, hier die bash, kann aber jede andere Shell, /usr/local/bin/perl oder was auch immer sein. Linux sucht dann automatisch nach diesem Interpreter.
__________________
Gruss
L
lazydog ist offline   Mit Zitat antworten
Alt 31.12.2004, 16:44  
Gast
 
Beiträge: n/a
Standard shell script ausführen

das habe ich probiert. Hier ist der output:

uid=33(www-data) gid=33(www-data) groups=33(www-data)
-rwxrwxrwx 1 root root 82 Dec 31 16:17 addmailuser

ich habe die Rechte schon auf 777 gesetzt, damit ich das Rechteproblem ausschliessen kann.
Die shebang Zeile ist drin, ich wußte nur diese Bezeichnung dafür nicht.
Aber die kann ja wohl auch nicht das Problem sein, weil das script sonst nicht mit ./addmailuser von der shell aus hätte ausführen können.
Ich kann ja -wie gesagt- auch ein ls oder locate oder find etc. ausführen. Nur eben nicht mein script, dessen code ja auch in Ordnung weil es ja von der shell aus geht.

Gruß Bernd
  Mit Zitat antworten
Alt 31.12.2004, 16:53  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.034
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Hast du auch geschaut, was shell_exec() zurückgibt? So im Stil wie oben beschrieben:
PHP-Code:
$var shell_exec('mache_irgendwas.script');
echo 
$var
__________________
Gruss
L
lazydog ist offline   Mit Zitat antworten
Alt 31.12.2004, 17:08  
Gast
 
Beiträge: n/a
Standard

es gibt nichts zurück. Liegt da das Problem?
  Mit Zitat antworten
Alt 31.12.2004, 17:20  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.034
lazydog befindet sich auf einem aufstrebenden Ast
Standard

An Safe Mode kann es auch nicht liegen, da du sonst auch andere Befehle nicht ausführen könntest. Da bleibt wahrscheinlich nicht viel anderes übrig, Zeile für Zeile des Scripts zu testen. Also z.B. mal zu schauen, ob ein Script der folgenden Art läuft:
Code:
#!/bin/sh
echo "$0 gestartet"
__________________
Gruss
L
lazydog ist offline   Mit Zitat antworten
Alt 31.12.2004, 17:51  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von lazydog
An Safe Mode kann es auch nicht liegen, da du sonst auch andere Befehle nicht ausführen könntest. Da bleibt wahrscheinlich nicht viel anderes übrig, Zeile für Zeile des Scripts zu testen. Also z.B. mal zu schauen, ob ein Script der folgenden Art läuft:
Code:
#!/bin/sh
echo "$0 gestartet"
das probiere ich dann morgen mal, wenn mein Kopf das zuläßt.
Vielen Dank erst mal.
Guten Rutsch ins neue Jahr.
  Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
shell script dynamische anzal von argumenten noskule Server, Hosting und Workstations 5 01.08.2006 18:36
Script beendet sich ohne Fehlermeldung Zahl PHP Tipps 2006 6 04.06.2006 20:41
Suche coder für script infiltrate Trash 7 27.03.2006 08:42
[PHP-CLI] Variablen per Shell an ein Script übergeben PHP Tipps 2006 6 23.01.2006 11:18
Gesuch / Einladung: PHP - Anti-Spam Script SvenLittkowski Trash 7 14.01.2006 03:38
[Erledigt] kurze frage zu screen in einem shell script Server, Hosting und Workstations 4 16.12.2005 21:22
[Erledigt] php script und ixed PHP Tipps 2005-2 14 12.10.2005 13:34
[Erledigt] Verzögerung durch included Script? Umgehen? PHP Tipps 2005-2 4 10.07.2005 19:26
[Erledigt] Relay Script PHP-Fortgeschrittene 11 01.06.2005 16:02
[Erledigt] Hilfe bei Download Verwaltungs Script PHP Tipps 2005 8 04.05.2005 10:29
Fehler bei Script, welches Ordner erstellt PsychoEagle PHP Tipps 2005 3 23.04.2005 16:03
shell script ausführen PHP Tipps 2004-2 0 28.12.2004 21:02
PHP Script aus PHP aufrufen Stümper PHP Tipps 2004 5 26.09.2004 08:15
"das" Script oder "der" Script?? Simbo Off-Topic Diskussionen 31 16.09.2004 17:04
script in shell über shell_exec ausführen ... ?!?!?! PHP Tipps 2004 1 01.09.2004 14:05

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
http://www.php.de/php-fortgeschrittene/15020-erledigt-shell-script-ausfuehren.html, shell script ausführen, solaris script ausführen, php shell ausführen, www-data shell, script ausführbar, www-data script ausführen, shellscript in anderer shell starten, php shell script ausführen rechte, www-data shellscript ausführen, über php shell ausführen rechte, phpshell uid, linux php shell ausführen, shell script auf webserver ausführen, webserver c programm, php auf shell ausführen, shell script website starten, shell skript wird auf http seite nicht ausgeführt, mit php shell script, shell script ausführen mit pfad

Alle Zeitangaben in WEZ +1. Es ist jetzt 14:56 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.