Exec bzw. passpassthru()?!

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

  • Exec bzw. passpassthru()?!

    Hi,
    ich habe mir vor kurzem mal einen Linux-Server geleistet. Jetzt würde ich natürlich per PHP gerne ein paar Befehle per Konsole ausführen. Nur leider passiert bei exec() bzw. passthru() überhaupt gar nichts. Keine Ausgabe, keine Fehlermeldung.

    Ich muss dazu noch sagen, das Plesk 8.0 größtenteils das System verwaltet. Jedoch hat der Bash-Script, welche in /usr/local/bin liegt und welchen ich ausführen will 0777-Rechte und sollte daher eig. Ausführbar sein. Desweiteren hat die Subdomain sogar ein open_basedir in /usr/local UND safe_mode ist aus.

    Error_reporting(E_ALL) sagt auch nichts.

    Was kann man da machen?

    EDIT: Ich les' grad' irgendwas von sudo..

    LG
    Fabian
    Zuletzt geändert von ; 18.05.2007, 09:19.

  • #2
    wart mal ab mit sudo.
    finde erst mal heraus, was nicht stimmt.

    übe mit "ls" oder ähnlich harmlosen befehlen.
    dein ziel sollte sein, fehler ausgegeben zu bekommen (befehl nicht gefunden, keine rechte, etc.)

    dann weißt du zumindest, was mit deinem shell script nicht stimmt (ist da die shebang zeile drin?).
    OffTopic:
    Desweiteren hat die Subdomain sogar ein open_basedir in /usr/local UND safe_mode ist aus.
    und was hat das mit einem shell script zu tun? verstehst du eigentlich diese einstellungen?
    wie wäre es (mal wieder) mit einer informationsquelle? ein buch, z.b.
    man kann nicht alles aus dem bauch heraus lernen, auch wenn die jugend heute fest daran glaubt.
    Zuletzt geändert von penizillin; 18.05.2007, 12:08.

    Kommentar


    • #3
      Jupp, shebang is drin.

      Kommentar


      • #4
        Noch ein paar Merkwürdigkeiten:

        PHP-Code:
        echo shell_exec("kjalkjLKS"); 
        ergibt nichts

        PHP-Code:
        echo shell_exec("ls"); 
        funktioniert.

        PHP-Code:
        echo shell_exec("sudo"); 
        gibt "usage: sudo [-HPSb] [-r role] [-t type] [-p prompt] [-u username|#uid] { -e file [...] | -i | -s | } " aus.

        Also scheint es doch irgenwo an den Rechten zu liegen.. oder?

        Kommentar


        • #5
          quatsch. vermutlich landen die fehlermeldungen in einem log.

          was passiert beim aufruf von "./nonexistent"?

          Kommentar


          • #6
            Falls du "echo shell_exec("./nonexistent");" meinst: nix.

            Und im Log steht:ahaaa

            Als ich mittels shell_exec() ein dir im /tmp (was auch open_base ist) anlegen wollte kommt: "mkdir: cannot create directory `demo': Permission denied"

            "sh: ./nonexistent: No such file or directory"

            "sh: mkdkdfj: command not found"

            Also geht da schon irgendwas.. nur bashs kann ich immernochned ausführen... =( (LOGEINTRAG: "Password:")

            ich schätze, es liegt daran, dass das bash owned by root ist. Und das PHP-Script eben www-run.

            Kommentar


            • #7
              nur bashs kann ich immernochned ausführen
              was hindert dich daran?

              Kommentar


              • #8
                Komischerweise geht's jetzt. ABER: In dem Bash-Script greife ich auch den mplayer zu. Über SSH geht's auch aber über PHP sagt er mir "/usr/local/bin/convert: line 4: mplayer: command not found" Warum?

                Kommentar


                • #9
                  lass dir mal "$PATH" ausgeben. da wird wohl der pfad zum mplayer nicht drin sein.
                  immer schön absolute pfade angeben.

                  Kommentar


                  • #10
                    Perfekt.. Danke für die Hilfe. Geht.. Und sorry für die dummen Fragen.. Bin noch'n Linux Newbe :P

                    Kommentar


                    • #11
                      dann hör auf zu raten und informiere dich - es gibt so viel ausführliche literatur!

                      Kommentar

                      Lädt...
                      X