sh script mit php ausführen

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • sh script mit php ausführen

    Hy Leute,

    hab mir ein kleines sh script geschrieben welches mir die maildatei web0p9 in das verzeichniss /home/htdocs/web0/html/usw kopiert und die rechte gesetzt das ich es über php auslesen kann. Funktioniert alles super.

    Das große problem ist ich kan ums verrecken das sh nicht durch php ausführen. habs mit exec() system() exec_shell() versucht und hab glaub ich schon so alle möglichen rechte vergeben die mir eingefallen sind. Das Problem ist. Es passiert gar nichts.

    WARUM ?? BITTE BITEE HELFT MIR ANSONSTEN DREH ICH BALD DURCH.

  • #2
    öh, ja, toll, äh..... fehlermeldung? funktioniert das .sh script an sich?
    Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
    var_dump(), print_r(), debug_backtrace und echo.
    Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
    Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
    Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

    Comment


    • #3
      genau. äh, usw. (hab sowas noch nie erlebt)

      das script funktioniert astrein. Aber nur über die Shell. Rückgabewert bekomme ich in php keinen (also 0) und fehlermeldung auch nicht.

      Auser über den Befehl shell_exec bekomm ich folgende meldung:

      arning: shell_exec(): Cannot execute using backquotes in Safe Mode in /home/htdocs/web0/html/test/mail_test.php on line 3


      Gibts vielleicht ne möglichkeit den Fehler anders zu orten ? bin zwar php-erfahren aber linux ehr anfänger.

      Comment


      • #4
        dann vermute ich dass die berechtigungen nicht stimmen. kannst du denn überhaupt das script ausführen - vllt. da mal testen, bis wohin es durchläuft.

        E_ALL aktiviert?
        Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
        var_dump(), print_r(), debug_backtrace und echo.
        Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
        Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
        Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

        Comment


        • #5
          wie kann ich auf simple weise testen ob das script überhaupt läuft ? cp befehle usw gehn ja nicht und nen echo befehl bringt mir auch nichts. Ist auch mein erstes Shellscript.

          PS: ich hab als user root, ftponly, web0, www probiert und selbiges auch als gruppe für die Datei gesetzt. Jetzt hab ich selbiges nochmal für die .php datei selbst gemacht. Welche kompo wäre denn deiner meinung nach logisch ?

          aktuell hab ich wieder
          mail_test.php web0 - root
          test.sh root - root

          Comment


          • #6
            Hi,

            nur ne Idee: Ist in deinem ShellScript die She-Bang Line enthalten? Also die die erste Zeil (#!/usr/bin/bash)....
            Damit wird der interpreter für diese Datei angegeben. Falls du den vergessen haben solltest kann PHP dieses Script beim ausführen keinem Programm zuordnen. Die Bash (Shell) ist da imho nachlässiger.

            Comment


            • #7
              so etwa

              glaub schon

              hab halt das verzeichnis angegeben wo die datei liegt.


              hier die file

              #!/home/htdocs/web0/html/die-patrone/test
              rm /home/htdocs/web0/html/web0p8;
              cp /var/mail/web0p8 /home/htdocs/web0/html/;
              chmod 777 /home/htdocs/web0/html/web0p8;
              chown web0 /home/htdocs/web0/html/web0p8;
              chgrp www /home/htdocs/web0/html/web0p8;

              Comment


              • #8
                Nun ja, ist #!/home/htdocs/web0/html/die-patrone/test das Programm was dein Script interpretieren soll? Im Normalfall sollte das /usr/bin/bash sein...... Also die Shell. Dein Shellscript kann sich ja schlecht selbst interpretieren....

                Comment


                • #9
                  hab das verzeichniss ? jetzt auf /us/bin/bash umgestellt. Was ist eigentlich bash ? weder datei noch verzeichniss zu finden das so heist (Suse Server).

                  Geändert hat sich aber nichts. trotzdem noch alles ...

                  Comment


                  • #10
                    bash - bourne again shell -> Wikipedia

                    In einem wirklich rudimentären Vergleich (jeder *nix'er wird mich jetz hauen) denk dir einfach das ist die command.com unter Linux.

                    Finde mit 'whereis bash' herraus wo sie ist. Selbst SuSE hat sowas
                    Im Zweifelsfall benutze 'sh' anstatt 'bash'.

                    Comment


                    • #11
                      Achso,

                      du weist schon, das du den ganze kram den du mit deinem Shell-Script machst auch unter php machen kannst?

                      http://de3.php.net/manual/de/ref.filesystem.php

                      Comment

                      Working...
                      X