EndEffekt: php-datei mit exec() ausführen

Hallo,

sollte eigentlich nicht so schwer sein, aber mein Hirn ist im Moment völlig überladen. Ich möchte eine PHP-Datei über exec() starten. Da sollte folgende Zeile doch genügen, oder nicht?

exec(/home/strato/www/usw/usw/datei.php);

Die Datei soll mir probeweise erstmal etwas in eine Textdatei schreiben, daher weiß ich, dass sie offenbar nicht funktioniert.
Safemode ist definitiv aus. Muss ich evtl. in der datei.php spezielle Richtlinien verfolgen? Oder liegts wirklich am Aufruf?
Ich erhalte keine Fehlermeldung. error_reporting ist EAll

  1. Abend!

    Was ist den mit dem guten alten "include()" oder "require()"?! :)

    Die exec() dient eigentlich eher dazu externe Programme zu starten bzw. deren Schnittstellen zu nutzen. So kannst du damit z.B. auch eine MySQL Datenbankverbindung ohne "mysql_connect()", sondern über den Befehl exec("mysql.exe -h [DEIN HOST] -u [DEIN USER] -p [DEIN PASSWORT]") aufbauen.

    Das war jetzt nur ein Beispiel... ob die Kommandozeilenparameter für die mysql.exe korrekt waren - weiß ich nicht :)

    Gruß,
    Mr.Luke

    Hallo,

    sollte eigentlich nicht so schwer sein, aber mein Hirn ist im Moment völlig überladen. Ich möchte eine PHP-Datei über exec() starten. Da sollte folgende Zeile doch genügen, oder nicht?

    exec(/home/strato/www/usw/usw/datei.php);

    Die Datei soll mir probeweise erstmal etwas in eine Textdatei schreiben, daher weiß ich, dass sie offenbar nicht funktioniert.
    Safemode ist definitiv aus. Muss ich evtl. in der datei.php spezielle Richtlinien verfolgen? Oder liegts wirklich am Aufruf?
    Ich erhalte keine Fehlermeldung. error_reporting ist EAll

  2. Hi EndEffekt,

    Safemode ist definitiv aus. Muss ich evtl. in der datei.php spezielle Richtlinien verfolgen? Oder liegts wirklich am Aufruf?

    Ist die PHP-Datei ausführbar (hat das executable-Bit gesetzt) und enthält eine Shebang-Zeile?

    Wenn nein, dann willst du das wohl entweder nachholen, oder den Interpreter (also PHP selber) starten und ihm als Argument den Pfad zu deinem Script übergeben.

    Viele Grüße,
      ~ Dennis.

  3. Hi,

    So weit ich weis, musst du bei exec erstmal das Tool angeben, mit dem die Datei ausgeführt werden soll - also php

    exec(/pfad_zu_php/php /home/strato/www/usw/usw/datei.php);

    Gruß

  4. Hallo,

    Ich möchte eine PHP-Datei über exec() starten. Da sollte folgende Zeile doch genügen, oder nicht?

    exec(/home/strato/www/usw/usw/datei.php);

    Nein, das reicht nicht, wenn die PHP keine SheBang enthält.

    Sieh Dir doch einfach die Beispiele unter exec() an.
    Dich interessiert doch sicherlich am eheseten das beispiel, wie man eine PHP-Anwendung in den Hintergund stellt. Dafür benötigst Du die CLI-Version von PHP (NICHT CGI), die auch über die Kommandozeile aufgerufen werden kann.

    http://de.php.net/manual/de/function.exec.php
    siehe Beitrag von -> juha at kuhazor dot idlegames dot com

    LG
    Chris©

  5. Moin!

    Ich möchte eine PHP-Datei über exec() starten. Da sollte folgende Zeile doch genügen, oder nicht?

    exec(/home/strato/www/usw/usw/datei.php);

    Da fehlen mindestens ' oder " um diese ^^^ Zeichenkette herum. Dann wäre noch die Frage, ob die Datei das x-Bit gesetzt hat und die erste Zeile die „Shebang-Zeile“ ist.

    Ich erhalte keine Fehlermeldung. error_reporting ist EAll

    Gibt dir denn exec etwas zurück? Wenn ja, weist du (logischerweise), dass und weshalb dein Aufruf fehlgeschlagen ist.

    Aber warum nimmst du nicht include?

    Viele Grüße,
    Robert