php - exec

pHoEnIx-sTyLe

Registered User
Hi,

ich würde gerne einen Hintergrundprozess, im Prinzip eine PHP Datei, über den exec Befehl starten lassen. Nur leider scheint das ganze nicht zu funktionieren. Ich schätze mal, dass es da Befehle gibt die man nicht ohne Berechtigung nutzen kann.

Code:
exec("/usr/bin/php /srv/www/vhosts/domain.tld/httpdocs/test.php &");

Kann mir jemand weiterhelfen oder sagen ob das so zu realisieren ist?
 
Last edited by a moderator:
Vermutlich funktioniert es nicht, weil /srv/bin/php nicht vom php User ausfuehrbar ist.
 
doch habe es gerade mit einer anderen datei versucht.

die datei schreibt nur das datum in eine txt datei. Damit hat es geklappt. Aber wenn ich meine reguläre Datei aufrufe dann wird diese nicht gestartet.
Wenn ich das ganze über die console mache dann klappt es aber über den php aufruf mit exec klappt es nicht.
 
Wenn ich das ganze über die console mache dann klappt es
Meistens ist man als root in der Console. Da klappt das dann auch mit den Rechten.

Unter welchen User laeuft bei dir php?
Welchem User gehoert die aufzurufende php Datei?
Wie lauten die Zugriffsrechte der Datei?
 
Unter welchen User laeuft bei dir php?

PHP ist global und läuft unter keinem User

Welchem User gehoert die aufzurufende php Datei?

Dem User der die Datei auch über exec aufrufen will

Wie lauten die Zugriffsrechte der Datei?

644 wie bei jeder normalen Datei.




Was sagen die Logfiles?

Die müsste ich erstmal auswerten, der Server wird stark genutzt da muss man sich erstmal durch die vielen Logs durchwühlen.
 
Schau mal in die Logfiles. Da steht die Loesung

Glaub ich eher nicht. Denn an den Zugriffsrechten kann es nicht liegen. Wie erklärst du dir denn nämlich dass ich einen anderen script über exec laufen lassen kann und genau den speziellen den ich brauche nicht???

cat logfile|grep deinscript.php >logfile

das bedeutet? bzw. hab es getestet aber nichts raus bekommen.
 
cat logfile|grep deinscript.php >logfile
logfile = /PFAD/ZUM/error.log (Name und Pfad bitte anpassen)
deinscript.php = Name deines Skriptes
(nur falls es da Missverstaendnisse gab)

logfile soll ausgegeben werden. In der Ausgabe wird nach Zeilen gesucht, die "deinskript.php" enthalten. Diese Zeilen gelangen auf den Bildschirm.
Das erleichtert das Suchen.

Wie erklärst du dir denn nämlich dass ich einen anderen script über exec laufen lassen kann und genau den speziellen den ich brauche nicht???
Kann ich dir jetzt so nicht sagen.
 
Wenn man einen Server administriert, ist es ein absolutes MUSS zu wissen, wo die verschiedenen Logfiles sind!

Also erst mal nachschauen (suchen).
 
Ich kann die Logfiles auch andersweitig einsehen von daher war das bisher nie nötig das zwingend zu wissen.

zudem konnte ich das problem nun auch andersweitig lösen.
 
Hallo!
Dann wäre es doch nett, wenn du uns an deiner Lösung teilhaben lässt.

mfG
Thorsten
 
Back
Top