ANTIWORD und EXEC

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

  • ANTIWORD und EXEC

    Hallo,

    ich hoffe Ihr könnt mir helfen ... ich habe zwar schon die Suche im Forum bemüht, aber so richtig weitergeholfen hat mir das auch nicht.

    Meine Testseite liegt auf einem Linux-System.
    Ich möchte in PHP Antiword aufrufen, ein DOC in Text umwandeln und dann auf dem Bildschirm ausgeben.

    Folgendes habe ich versucht:

    $command="antiword -t /srv/www/htdocs/htdocs_FRA/gts2.doc >/srv/www/htdocs/htdocs_FRA/test.txt";
    echo exec($command,$test1);

    Das Ergebnis ist:
    Es wird eine test.txt Datei erstellt - jedoch ohne Inhalt.
    Führe ich irgendwas anderes als command aus, Bsp. "ls", dann bekomme ich die Ausgabe wie gewünscht in die Datei.

    Gebe ich den gleichen Antiword.-Befehl in einer Shell ein, funktioniert alles einwandfrei...

    Habt Ihr da irgendeine Idee ??

    Vielen Dank vorab für Eure Hilfe.


    Viele Grüße

  • #2
    ANTIWORD und EXEC

    Hallo,

    ich hoffe Ihr könnt mir helfen ... ich habe zwar schon die Suche im Forum bemüht, aber so richtig weitergeholfen hat mir das auch nicht.

    Meine Testseite liegt auf einem Linux-System.
    Ich möchte in PHP Antiword aufrufen, ein DOC in Text umwandeln und dann auf dem Bildschirm ausgeben.

    Folgendes habe ich versucht:

    $command="antiword -t /srv/www/htdocs/htdocs_FRA/gts2.doc >/srv/www/htdocs/htdocs_FRA/test.txt";
    echo exec($command,$test1);

    Das Ergebnis ist:
    Es wird eine test.txt Datei erstellt - jedoch ohne Inhalt.
    Führe ich irgendwas anderes als command aus, Bsp. "ls", dann bekomme ich die Ausgabe wie gewünscht in die Datei.

    Gebe ich den gleichen Antiword.-Befehl in einer Shell ein, funktioniert alles einwandfrei...

    Habt Ihr da irgendeine Idee ??

    Vielen Dank vorab für Eure Hilfe.


    Viele Grüße

    Kommentar


    • #3
      Wird dir nix zurückgegeben!?
      [FONT="Helvetica"]twitter.com/unset[/FONT]

      Shitstorm Podcast – Wöchentliches Auskotzen

      Kommentar


      • #4
        wenn ich

        print_r($test1)

        auslese, erhalte ich

        127,

        was auch immer das bedeutet. Das zu erstellende File ist jedoch leer...

        Kommentar


        • #5
          Was sagt var_dump($test1) ?
          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

          Kommentar


          • #6
            int(127) .....

            Kommentar


            • #7
              sieht ganz nach Fehlercode aus ... damit wäre dein Programmaufruf fehlerhaft.

              mach mal ein
              $command="antiword -t /srv/www/htdocs/htdocs_FRA/gts2.doc 2&>1 > /srv/www/htdocs/htdocs_FRA/test.txt";
              und schau dir dann die Datei nochmal an
              [COLOR=royalblue]Ein großes DANKE an alle, die sich auf selbstlose Weise im Forum einbringen.[/COLOR]

              [COLOR=silver]btw: REAL PROGRAMMERs aren't afraid to use GOTOs![/COLOR]

              [color=indigo]Etwas ernster, aber auch nicht weiter tragisch, sieht die Situation bei Software-Patenten aus. Software-Patente sind eine amerikanische Erfindung und stehen auf dem selben Blatt wie genveränderte Babynahrung, die im Supermarkt nicht mehr als solche gekennzeichnet werden soll, um die Hersteller nicht gegenüber denen natürlicher Produkte zu diskriminieren ...[/color]
              (from here)

              Kommentar


              • #8
                aha ....
                da steht drin: sh: permission denied....
                nun habe ich für die Datei antiword die rechte auf die gruppe users gesetzt;WWRUN ist da auch Mitglied und die Leserechte sind
                rwx-rx-r.
                Aber ich bekomme immer noch permission denied ...
                also kein php-problem mehr sondern linux ....
                hast Du da noch eine Idee ?

                Kommentar


                • #9
                  Klingt mir nach einem ähnlichen Problem wie diesem
                  Vllt hilft's

                  Gruss

                  tobi
                  Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                  [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                  Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                  Kommentar


                  • #10
                    1) darfst du antiword ausführen? (mit $command = 'antiword --version' o.ä. testen)

                    2) darfst du das DOC lesen? (mit $command = 'cat /path/to/in.doc' testen)

                    3) darfst du die Textdatei anlegen? (mit $command = 'touch /path/to/out.txt' testen)
                    [COLOR=royalblue]Ein großes DANKE an alle, die sich auf selbstlose Weise im Forum einbringen.[/COLOR]

                    [COLOR=silver]btw: REAL PROGRAMMERs aren't afraid to use GOTOs![/COLOR]

                    [color=indigo]Etwas ernster, aber auch nicht weiter tragisch, sieht die Situation bei Software-Patenten aus. Software-Patente sind eine amerikanische Erfindung und stehen auf dem selben Blatt wie genveränderte Babynahrung, die im Supermarkt nicht mehr als solche gekennzeichnet werden soll, um die Hersteller nicht gegenüber denen natürlicher Produkte zu diskriminieren ...[/color]
                    (from here)

                    Kommentar


                    • #11
                      vielen Dank !!!
                      Ein Restart des Apache hat es dann gebracht !
                      Der Tip mit der Ausgabe der Fehlermeldung in eine Datei war Gold wert.

                      Danke :-)))))

                      Viele Grüße

                      Kommentar


                      • #12
                        Original geschrieben von fraeyodm
                        vielen Dank !!!
                        np



                        Ein Restart des Apache hat es dann gebracht !
                        Der Tip mit der Ausgabe der Fehlermeldung in eine Datei war Gold wert.
                        ... und eine gute Erklärung der Lösung ist dann Anderen Gold wert.

                        Darum: bitte poste noch _nachvollziehbar_, was das eigentliche Problem war, wie du es nun gelöst hast und was das mit dem Restart des Apache zu tun hat

                        die Community und ich sind dir dafür dankbar
                        [COLOR=royalblue]Ein großes DANKE an alle, die sich auf selbstlose Weise im Forum einbringen.[/COLOR]

                        [COLOR=silver]btw: REAL PROGRAMMERs aren't afraid to use GOTOs![/COLOR]

                        [color=indigo]Etwas ernster, aber auch nicht weiter tragisch, sieht die Situation bei Software-Patenten aus. Software-Patente sind eine amerikanische Erfindung und stehen auf dem selben Blatt wie genveränderte Babynahrung, die im Supermarkt nicht mehr als solche gekennzeichnet werden soll, um die Hersteller nicht gegenüber denen natürlicher Produkte zu diskriminieren ...[/color]
                        (from here)

                        Kommentar


                        • #13
                          Also,
                          dank Deines Tips konnte ich ja die Fehlermeldung die beim Ausführen des EXEC-Befehls rauskam auslesen.
                          Permission denied.

                          Also habe ich den user wwwrun in die Gruppe users getan und via chgrp alle dateien im Antiword-Verzeichnis auf die Gruppe users gesetzt.

                          Ich gehe davon aus das der Apache-Neustart dann dafür gesorgt hat das der Apache die neuen Rechte auch wahr nahm, jedenfalls funktionierte danach alles reibungslos.

                          Wie gesagt, nochmals vielen Dank ;-)

                          Viele Grüße

                          Kommentar

                          Lädt...
                          X