Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP-Script vom Perl-Script aufrufen

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    [wiregate] PHP-Script vom Perl-Script aufrufen

    Guten Tag in die Runde!

    Habe gestern stolz mein 1. Plugin aud dem WG ausgeführt. Funktioniert prima.
    Nun möchte ich das Plugin mit einem Systemaufruf "system('var/www/knx/test/test.php')" erweitern.
    Der Grund hierfür liegt darin, dass ich bzgl. Perl gewisse Aversionen habe und daher alles Weitere mit einem PHP-Script erledigen möchte.

    Zum Test habe ich zwei Scripte geschrieben. Ein PHP und ein Perl-Script.

    Das PHP-Script läuft auf dem WG nach Aufruf über den Browser einwandfrei. Rechte auf "777".
    Habe zum Test das mini PHP-Script unter "/var/www/knx/test/test.php" und ein mini Perl-Script unter "/var/www/knx/perl/test.pl'); erstellt:

    -------------------------------- test.pl ------------------------------
    #!/usr/bin/perl

    use warnings;
    use strict;

    print "Content-type: text/html\n\n";

    #system('ls', '/var/www/knx/test/test.php');
    system('/var/www/knx/test/test.php');
    if ( $? == -1 )
    {
    print "Fehler: $!\n";
    }
    else
    {
    printf "Kommando ausgeführt mit Rückkehrwert %d", $? >> 8;
    }
    ---------------------------------- /test.pl ----------------------------


    ---------------------------------- test.php ----------------------------
    #!/usr/lib/cgi-bin/php

    <?php

    include "../inc/config.inc.php";

    if (( isset( $_GET['value'] )) && ( $_GET['value'] == "TEST" )) $msg = "Query Test ok";
    else $msg = "Query Test nicht ok";

    $subject = "Zugriff auf test.php";
    $message = "Zugriff auf test.php über " . $ip . "\n";
    $message .= $msg . "\n";
    $message .= "Datum: " . $datum . " Uhrzeit: " . $uhrzeit . "\n";
    $header = "From: xxx@xxx.de\nReply-to:xxx@xxx.de\nRet...th:<xxx@xxx.de>\n";
    @mail( "xxx@jxxx.de", $subject, $message, $header );

    ?>

    --------------------------------- /test.php ------------------------------

    Wenn ich die auskommentierte Funktion im Perl-Script anwende, erhalte ich ich eine korrekte Anzeige wie folgt:
    "/var/www/knx/perl/test.php Kommando ausgeführt mit Rückkehrwert 0"

    Bei der Ausführung von "system('/var/www/knx/test/test.php');" erhalte ich die Antwort "Fehler:
    No such file or directory"

    Wo liegt der Hase im Pfeffer?

    MfG
    J. K.

    #2
    Hallo
    Mein PHP-Script habe ich mit Perl so aufgerufen:
    Code:
    my $response = qx(usr/bin/php ../var/www/myhouse/pv/sma_rpc.php);
    Siehe auch hier:
    https://knx-user-forum.de/forum/supp...wiregate/17756
    Gruß NetFritz
    KNX & Wago 750-849 ,Wiregate u. Cometvisu, iPad 3G 64GB.
    WP Alpha-Innotec WWC130HX (RS232-Moxa-LAN),Solaranlage für Brauchwasser und Heizung.
    PV-Anlage = SMA Webbox2.0 , SunnyBoy 4000TL, Sharp 4kWP

    Kommentar


      #3
      Vermutlich vorher noch das Paket php5-cli installieren, ist glaub ich Defaultmässig nicht drauf..

      In die erste Zeile dann (shebang):
      #!/usr/bin/php

      Dann kann sich das /usr/bin/php jedesmal sparen..

      Vielleicht kann sich die PHP-Fraktion gleich bei mir im CV-Forum revanchieren

      Makki
      EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
      -> Bitte KEINE PNs!

      Kommentar


        #4
        PHP-Script vom Perl-Script aufrufen die II.

        Vielen Dank für die Antwort. Leider funktioniert auch dieser Funktionsaufruf nicht:

        PHP-Code:
        my $response qx(/usr/bin/php ../var/www/knx/test/test.php); 
        Auch andere Varianten wie z.B.
        PHP-Code:
        my $response qx('/usr/bin/php''/var/www/knx/test/test.php'); 
        führen nicht zum Erfolg.

        An NetFritz: Haben Sie das Paket php5-cli installiert?

        Suche immer noch nach einer Lösung.

        MfG
        J. K.

        Kommentar


          #5
          PHP-Script vom Perl-Script aufrufen die IIb.

          Sorry!!!!

          Im vorigen Thread ist natürlich Perl-Code gemeint!!!

          MfG
          J. K.

          Kommentar


            #6
            Zitat von testfahrer Beitrag anzeigen
            PHP-Code:
            my $response qx(/usr/bin/php ../var/www/knx/test/test.php); 
            J. K.
            Hoi

            Im ersten Hochkomma ist der Ort von PHP angegeben und im Zweiten der Ort Deines Scripts.

            Die zwei Punkte mal weglassen...
            Grüsse Bodo
            Fragen gehören ins Forum, und nicht in mein Postfach;
            EibPC-Fan; Wiregate-Fan; Timberwolf-Fan mit 30x 1-Wire Sensoren;

            Kommentar


              #7
              Hallo,

              wie bereits in meinen vorigen Beispielen erwähnt funktioniert der Systemaufruf
              Code:
              my $response = qx(/usr/bin/php ../var/www/knx/test/test.php);

              nicht. Obwohl das PHP-Script beim Aufruf durch den Browser seinen Dienst tut
              und auch im genannten Verzeichnis liegt.
              Shebang PHP = #!/usr/bin/php
              Shebang Perl = #!/usr/bin/perl
              So ist alles im grünen Bereich. 777 für PHP-Script eingestellt etc.

              Mir die Haare rauf.

              Mfg
              J. K.

              Kommentar


                #8
                Hallo
                @testfahrer
                An NetFritz: Haben Sie das Paket php5-cli installiert?
                php5-cli habe ich installiert.
                @Bodo
                Die zwei Punkte mal weglassen...
                Ohne die 2 Punkte ging es bei mir nicht.
                Gruß NetFritz
                KNX & Wago 750-849 ,Wiregate u. Cometvisu, iPad 3G 64GB.
                WP Alpha-Innotec WWC130HX (RS232-Moxa-LAN),Solaranlage für Brauchwasser und Heizung.
                PV-Anlage = SMA Webbox2.0 , SunnyBoy 4000TL, Sharp 4kWP

                Kommentar


                  #9
                  Zitat von NetFritz Beitrag anzeigen
                  Ohne die 2 Punkte ging es bei mir nicht.
                  Gruß NetFritz
                  Hoi

                  Bei mir schon.
                  Grüsse Bodo
                  Fragen gehören ins Forum, und nicht in mein Postfach;
                  EibPC-Fan; Wiregate-Fan; Timberwolf-Fan mit 30x 1-Wire Sensoren;

                  Kommentar


                    #10
                    Hallo

                    so geht es ebenfalls
                    Code:
                    my $response = qx(/usr/bin/php /var/www/knx/test/test.php);
                    nicht!!!!

                    Leider

                    MfG
                    J. K.

                    Kommentar


                      #11
                      Hallo NetFritz!

                      Bin kein Unix Kenner. Wie bekomme ich php5-cli auf mein WG?

                      MfG
                      J. K.

                      Kommentar


                        #12
                        Hallo
                        Aus der Konsole mit "apt-get update" dann mit "apt-get install php5-cli" das Paket installieren.
                        Als Anleitung benutze ich das.
                        APT HOWTO (Obsolete Documentation) - Paketverwaltung
                        Gruß NetFritz
                        KNX & Wago 750-849 ,Wiregate u. Cometvisu, iPad 3G 64GB.
                        WP Alpha-Innotec WWC130HX (RS232-Moxa-LAN),Solaranlage für Brauchwasser und Heizung.
                        PV-Anlage = SMA Webbox2.0 , SunnyBoy 4000TL, Sharp 4kWP

                        Kommentar


                          #13
                          Vielen Dank!

                          Hi, NetFritz und makki!!!!

                          Der Tipp bzgl. php5-cli war genau der angesagte. Mein Sohn hat es mir kurzerhand auf den WG-Rechner aufgespielt, getestet und für gut befunden.

                          Vielen Dank noch einmal an Euch.

                          Wünsche ein sonniges :-) Wochenende.

                          MfG
                          J. K.

                          Kommentar

                          Lädt...
                          X