exec verweigert den dienst

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • exec verweigert den dienst

    Hallo,
    ich möchte mit exec folgenden code ausführen, der von einem Bild ein Thumbnail erzeugen soll:

    PHP-Code:
        $src escapeshellarg($pfadname.$foto_file);
        
    $dst escapeshellarg($myDateipfadThumbnail);
        
    $command sprintf('/usr/bin/convert %s -thumbnail 120 %s 2>&1'$src$dst);
        
    $output = array();
        
    exec($command$output$return_var);
        if (
    $return_var != 0) {
            echo 
    $command.'<br />';
                echo 
    implode('<br />'$output);
        } 
    Ausser dass ich den Namen des Befehls angezeigt bekomme, passiert leider nichts. Wenn ich den Befehl genau so als www-data auf der shell ausführe, klappt es wunderbar.

    Hat von euch jemand eine Idee? Bin bald am verzweifeln...

    Gruß
    Hans
    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Ergo: Je mehr Käse, desto weniger Käse...

  • #2
    Bist du sicher, dass das Script von www-data ausgeführt wird?
    Das kannst du mit echo exec('whoami'); überprüfen.

    Steht dein Error-Reporting auf E_ALL?

    Was gibt der Befehl aus, wenn du ihn manuell ausführst, gibt es überhaupt eine Ausgabe?

    Hast du mal shell_exec() versucht?

    Kommentar


    • #3
      Original geschrieben von onemorenerd
      Bist du sicher, dass das Script von www-data ausgeführt wird?
      Das kannst du mit echo exec('whoami'); überprüfen.
      Ich krieg einfach keine Rückmeldung. Auch mit exec('whoami') kommt nichts zurück. Der Code sieht also wie folgt aus:

      PHP-Code:
      $command sprintf('whoami');
      $output = array();
      exec($command$output$return_var);
      if (
      $return_var != 0) {
          echo 
      $command.'<br />';
          echo 
      implode('<br />'$output);

      zurück kommt immer nur das 'whoami', also das "echo $command". Das heisst, $return_var hat einen Wert ungleich 0, aber weiter wird nichts zurückgegeben!

      Original geschrieben von onemorenerd

      Steht dein Error-Reporting auf E_ALL?
      Steht auf
      E_ALL & ~E_NOTICE

      Original geschrieben von onemorenerd

      Was gibt der Befehl aus, wenn du ihn manuell ausführst, gibt es überhaupt eine Ausgabe?
      Manuell, also wenn ich Dich richtig verstehe als www-data auf der shell ausgeführt, kommt nichts zurück, aber die convert-operation wird korrekt ausgeführt.

      Original geschrieben von onemorenerd

      Hast du mal shell_exec() versucht?
      Nein, aber das werd ich machen, wenn ich nicht bald mit exec weiterkomme. Das Witzige ist, dass auf einem anderen Server die selbe Operation problemlos klappt. In der php.ini konnte ich keine unterschiede entdecken...
      Je mehr Käse, desto mehr Löcher.
      Je mehr Löcher, desto weniger Käse.
      Ergo: Je mehr Käse, desto weniger Käse...

      Kommentar


      • #4
        Original geschrieben von onemorenerd
        Hast du mal shell_exec() versucht?

        Jo, hab ich jetzt auch versucht - dabei passiert folgendes, obwohl ich den safe_mode auf OFF stehen hab...

        Warning: shell_exec() [function.shell-exec]: Cannot execute using backquotes in Safe Mode in /var/www/.../tools.class.php on line 123
        Hab ich in der apache-konfiguration was übersehen? Weiss bald echt nicht mehr weiter! Ich werd das Problem jetzt halt auf die etwas längere Art mit der php-internen Bildbearbeitung lösen. Verstehen tu ich aber nicht, warum es mit exec und convert nicht klappt, was mir doch ein gewisses Unwohlsein bereitet...

        Gruß
        Hans
        Je mehr Käse, desto mehr Löcher.
        Je mehr Löcher, desto weniger Käse.
        Ergo: Je mehr Käse, desto weniger Käse...

        Kommentar


        • #5
          Wie sieht der Inhalt von $command aus?

          Kommentar


          • #6
            Original geschrieben von onemorenerd
            Wie sieht der Inhalt von $command aus?

            Obiges Ergebnis krieg ich damit:

            PHP-Code:
            $src escapeshellarg($modulogConf['realPath']."myData/fotoupload/".$ordner.'/'.$foto_file);
            $dst escapeshellarg($myDateipfadThumbnail);
            $command sprintf($modulogConf['realPath'].'includes/convert %s -thumbnail 120 %s 2>&1'$src$dst);
            $erg shell_exec($command);
            echo 
            $erg

            und damit auch:

            PHP-Code:
            $erg shell_exec('whoami');
            echo 
            $erg
            Je mehr Käse, desto mehr Löcher.
            Je mehr Löcher, desto weniger Käse.
            Ergo: Je mehr Käse, desto weniger Käse...

            Kommentar


            • #7
              Wie sieht der Inhalt von $command aus?

              Kommentar

              Lädt...
              X