Apache2 - nichts wird angezeigt!

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Guten Abend

    Ich versuche mich nun schon eine ganze Weile an meigrafd's GPIO Tutorial, komme aber nicht vom Fleck.
    Solange ich folgende Code-Zeilen in meine index.php einfüge, funktioniert alles wie es soll:

    [code=php]<?php echo "hello world"; ?>
    <?php echo date('Y-m-d H:i:s'); ?>
    <?php phpinfo(); ?>[/php]

    aber sobald ich diese durch das Script mit sowohl html als auch PHP ersetze, wird mir gar nichts mehr angezeigt (Firefox) oder gar ERROR 500 (Edge) ausgegeben:

    [code=php]<!DOCTYPE html>
    <html>
    <head>
    <title>GPIO test</title>
    </head>
    <body>

    <?php

    echo "PHP Test";

    ?>[/php]

    Es scheint ein Problem mit dem HTML zu geben, wisst ihr wo ich suchen muss, um den Fehler zu beheben?
    Die Datei heisst bei mir index.php und liegt in /var/www/html, muss ich diese in einen anderen Ordner legen?


    Liebe Grüsse
    housedoor

  • Ich kann nicht ganz folgen, was nun?

    Zitat von housedoor


    Solange ich folgende Code-Zeilen in meine index.php einfüge, funktioniert alles wie es soll:

    Zitat von housedoor

    Es scheint ein Problem mit dem HTML zu geben, wisst ihr wo ich suchen muss, um den Fehler zu beheben?
    Die Datei heisst bei mir index.php und liegt in /var/www/html, muss ich diese in einen anderen Ordner legen?

    Einmal wird der Inhalt angezeigt, anderes Mal nicht?
    Der Pfad ist schon der richtige. Ich denke nicht, dass es mit dem HTML zu tun hat. Auch gemischter Inhalt wird eigentlich verarbeitet. Ich arbeite damit. Kannst ja mal die Dateiendung probehalber in phtml ändern, so heißen bei mir Dateien mit HTML- und PHP-Inhalt.

  • Guten Abend

    Nach längerem probieren funktioniert nun diese index.phtml:
    [code=php]<!DOCTYPE html>
    <html>
    <head>
    <title>GPIO test</title>
    </head>
    <body>

    <?php

    echo "PHP Test";

    ?>
    </body>
    </html>
    [/php]

    Wenn ich stattdessen den Code vom Tutorial einfüge, wird noch immer nichts angezeigt:

    [code=php]<!DOCTYPE html>
    <html>
    <head>
    <title>GPIO test</title>
    </head>
    <body>

    <?php
    $GPIO = array();
    $GPIO['17'] = "out";
    $GPIO['27'] = "out";
    $GPIO['22'] = "in";
    $GPIO['23'] = "in";
    $GPIO['24'] = "out";

    if (!empty($_GET["gpio"])) {
    if (!file_exists("/sys/class/gpio/gpio".$_GET['gpio']."")) { init_GPIO($_GET['gpio'], $GPIO[$_GET['gpio']]); }
    file_put_contents("/sys/class/gpio/gpio".$_GET['gpio']."/value", $_GET['state']);
    }

    foreach($GPIO AS $pin => $direction) {
    if ($direction == "out") {
    echo "GPIO ".$pin.": <a href='?gpio=".$pin."&state=1'>An</a> / <a href='?gpio=".$pin."&state=0'>Aus</a>";
    if (GetGPIOpinValue($pin) == 1) {
    echo "<div id='gpioOn' style='width: 25px; height: 20px; background-color:Green'>On</div>\n";
    } else {
    echo "<div id='gpioOff' style='width: 25px; height: 20px; background-color:Red'>Off</div>\n";
    }
    } else {
    if (GetGPIOpinValue($pin) == 1) {
    echo "GPIO ".$pin." <div id='gpioOn' style='width: 25px; height: 20px; background-color:Green'>On</div>\n";
    } else {
    echo "GPIO ".$pin." <div id='gpioOff' style='width: 25px; height: 20px; background-color:Red'>Off</div>\n";
    }
    }
    echo "<br/>\n";
    }


    //-------- Functions

    function init_GPIO($pin, $direction) {
    if (!file_exists("/sys/class/gpio/gpio".$pin."")) {
    file_put_contents("/sys/class/gpio/export", $pin);
    usleep(200000); //Programm-Verzoegerung in Mikrosekunden: 0.2s
    file_put_contents("/sys/class/gpio/gpio".$pin."/direction", $direction);
    }
    }

    function GetGPIOpinDirection($PIN) {
    $Direction='';
    if (file_exists("/sys/class/gpio/gpio".$PIN."")) {
    $Direction = trim(file_get_contents("/sys/class/gpio/gpio".$PIN."/direction"));
    }
    return $Direction;
    }

    function GetGPIOpinValue($PIN) {
    $Value='';
    if (file_exists("/sys/class/gpio/gpio".$PIN."")) {
    $Value = trim(file_get_contents("/sys/class/gpio/gpio".$PIN."/value"));
    }
    return $Value;
    }
    ?>
    </body>
    </html> [/php]

    Ein Blick in /var/log/apache2/error.log zeigt dann "PHP Parse error: Syntax error, unexpected { in ... line 18. (Nach dem ersten if)
    Soweit ich PHP durchblicke, ist dies recht nahe an "C", da gehört doch die geschweifte Klammer hin?

  • Zeile 18 ist in PHP eigendlich diese:
    [code=php]echo "<div id='gpioOn' style='width: 25px; height: 20px; background-color:Green'>On</div>\n";[/php]

    Was mir negativ auffällt ist das ganze Anführungszeichen- (Quote & Doppelquote) Gedöns. Ist ein bisschen Früh, aber ich denke darin liegt der Fehler.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!