Probleme mit Webserver

  • Hallo Raspi-Gemeinde,
    ich bin dabei einen Webserver mit apache2 unter Jessie zum laufen zu bringen.
    Ich habe das bereits unter 2 verschiedenen Raspi's installiert. Nach allen Installationen entsprechend positiv getestet,
    d.h. der apache2 läuft, phpinfo funktioniert, mysqladmin funktioniert. Nun habe ich meine eigene Test-Webseite geschrieben
    und mit php-includes versehen. Leider wird der php-Code nicht interpretiert und ich bin am Ende meines Lateins.
    Hier mal die einfache Testseite:
    <html>
    <head>
    <title>Raspi Webserver</title>
    </head>
    <body >
    <table width="1020" border="0" cellpadding="0" cellspacing="0">
    <tr>
    <td colspan="6"> &nbsp; </td>
    </tr>
    <tr >
    <td width="10">&nbsp;</td>
    <td width="190" valign="top" >&nbsp; </td>
    <td width="10">&nbsp;</td>
    <td width="800"> <?php echo "Test" ?></td>
    <td width="10">&nbsp;</td>
    <td width="200">&nbsp;</td>
    </tr>
    </table>
    </body>
    </html>


    Es erfolgt keine Ausgabe des echo-Tags. Ersetze ich den php-Tag mit statischem Text wird die Ausgabe angezeigt.
    Wo liegt den da der Hase im Pfeffer.


    Ich hoffe, mir kann einer dabei helfen.

  • Dann prüf mal das error.log vom apache2 => /var/log/apache2/error.log


    Höchst wahrscheinlich liegt dein Problem an der falschen Syntax... Bei PHP muss jede Zeile mit ; abschließen.


    Falsch:


    Kein Fehler:

    Code
    php -r ' echo "Test"; '

    (die Leerzeichen nach/vor ' sind nicht zwingend notwendig)


  • Leider nicht die Ursache, habe ich bereits alles probiert.
    Ebenso das Einfügen von php-Dateien.


    Über die Console erfolgt keine Ausgabe, weder mit ; noch ohne

    Edited once, last by rahe288 ().

  • Du musst aufpassen, dass du nicht z.B.

    Code
    ...
    echo "<table width="1020" border="0" cellpadding="0" cellspacing="0">";
    ...


    sondern

    Code
    echo '<table width="1020" border="0" cellpadding="0" cellspacing="0">';
    echo "<table width='1020' border='0' cellpadding='0' cellspacing='0'>";
    echo "<table width=\"1020\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";


    schreibst.


    Also entweder bei den Echos die Ausgabe in einfachen Anführungszeichen fassen, dann kann der Text doppelte haben, oder andersrum, oder die Doppelten im Text mit jeweils einem Backslash maskieren.


    Willst du im Quelltext das mit Zeilenumbrüchen besser lesbar darstellen, so musst du für einen Zeilenumbruch im Quelltest vor das "; ein \n schreiben.
    also z.B.

    Code
    echo "<table width='1020' border='0' cellpadding='0' cellspacing='0'>\n";


    Die <br> liefern nur bei der Ausgabe auf der Webseite Zeilenumbrüche.

    Selber denken,
    wie kann man nur?

    Edited once, last by Rasp-Berlin ().

  • Bitte nicht Beiträge vollständig quoten/zitieren, vor allem wenn diese genau da drüber stehen.



    FAQ => Nützliche Links / Linksammlung => HowTo: CODE / PHP Code im Forum posten




    Zentris: [code=php]<td width="800"> <?php echo "Test" ?></td>[/php]




    rahe288: Wie heißt die Datei in dem dein Code steckt?


    Standardmäßig werden nur *.php* Dateien von PHP verarbeitet. Wenn deine Datei also auf *.html endet dann wird diese auch nicht vom PHP Interpreter verarbeitet.

  • Hallo rahe288,


    du hast deinen Code aber schon in eine .php Datei eingebettet oder ist es nur eine .html? Das geht aus deinem Eingangspost leider nicht hervor oder ich habe es überlesen...

  • Die Datei ist die normale Index.html. Ich habe das aber bereits mit index.php versucht
    und auch eine php-Datei mit anderen Namen versehen. Ohne Erfolg.

  • PHTML-Dateien werden auch geparst. So nenne ich meine Dateien wie in diesem Fall hier, die in der Mehrheit HTML-Code enthalten, aber eben auch kleine Schnipsel PHP drin haben.


  • Die Datei ist die normale Index.html. Ich habe das aber bereits mit index.php versucht
    und auch eine php-Datei mit anderen Namen versehen. Ohne Erfolg.


    Dann poste doch mal bitte deine komplette .php Datei in der [Code] Ansicht. Mit einer normalen .html Datei wirst du kein Glück haben.

    Edited once, last by doing ().


  • Die Datei ist die normale Index.html. Ich habe das aber bereits mit index.php versucht
    und auch eine php-Datei mit anderen Namen versehen. Ohne Erfolg.


    Das macht langsam aber kein Sinn mehr.... Wenn phpinfo.php funktioniert ebenso wie phpMyAdmin, dann muss auch eine index.php funktionieren.


    Was aber definitiv nicht funktioniert: index.html mit enthaltenem php Code.


    => http://raspberrypi.roxxs.org/test/rahe288.php
    => http://raspberrypi.roxxs.org/test/rahe288.html


    Siehst du den Unterschied?


    Was du jetzt also bitte machst:


    1) Deine Datei in index.php umbenennen
    2) Explizit diese Datei aufrufen / ansurfen: http://raspberrypi/index.php



    Das zweite ist deshalb wichtig sofern noch eine index.html in dem Verzeichnis liegt, die wird Standardmäßig nämlich bevorzugt. Wenn du also nicht explizit eine Datei aufrufst greift die Bevorzugung.

  • Hallo doing,


    ich muss zu dem ganzen Problem sagen, dass ich eigentlich Webprogrammierer bin, aber hauptsächlich
    unter Windows programmiert habe.
    Ich bin also kein Linux-Spezialist und habe mich erst jetzt als Rentner mit dem Raspi beschäftigt.
    Leider fehlen mir bei Linux vielleicht noch ein paar Kenntnisse, die hier anders als bei Windows liegen.

  • Hallo meigrafd,


    danke für den Anstoß, da hätte ich aber auch selber drauf kommen können.
    Trotzdem kann ich nicht nachvollziehen, warum der gleiche Quelltext in der
    Datei "testphp.php" und mit dem Aufruf http://xxx.xxx.xxx.xxx/testphp.php nicht funktioniert.


    Trotzdem vielen Dank, nun komme ich erstmal etwas weiter.


  • ich muss zu dem ganzen Problem sagen, dass ich eigentlich Webprogrammierer bin, aber hauptsächlich
    unter Windows programmiert habe.
    Ich bin also kein Linux-Spezialist und habe mich erst jetzt als Rentner mit dem Raspi beschäftigt.
    Leider fehlen mir bei Linux vielleicht noch ein paar Kenntnisse, die hier anders als bei Windows liegen.


    Sorry aber das hat nicht allzu viel mit Windows oder Linux zu tun ;)


    Auch unter Windows konfiguriert man den Webserver. Auch IIS kann so konfiguriert werden das *.html nicht vom PHP Interpreter verarbeitet wird - was glaub ich ebenfalls standardmäßig der Fall ist: https://msdn.microsoft.com/de-…v=ws.11).aspx#Install_PHP ab 11.


    apache2 gibt es auch für Windows - da ist das ebenfalls nahezu identisch zur Linux Version.



    Datei "testphp.php" und mit dem Aufruf http://xxx.xxx.xxx.xxx/testphp.php nicht funktioniert.


    Du hast also jetzt eine Datei /var/www/html/testphp.php mit dem Inhalt aus Beitrag#1 aber dir wird nichts angezeigt?
    Dann prüfe/poste bitte besagtes error.log

    Code
    cat /var/log/apache2/error.log

    (Ausgaben bitte in CODE posten)
    Wenn du PuTTY nutzt kannst du den Text einfach mit der linken Maustaste markieren, dann wird dieser automatisch in die Zwischenablage kopiert. Hier dann einfach in CODE-Blöcke einfügen.


  • Nun habe ich meine eigene Test-Webseite geschrieben und mit php-includes versehen. Leider wird der php-Code nicht interpretiert und ich bin am Ende meines Lateins.


    In deiner Testseite konnte ich keinen php include() entdecken, daher meine Bitte doch mal den kompletten Code zu posten. Sonst kann man nicht sehen, was da sonst noch im Argen liegt.

  • Quote from doing


    In deiner Testseite konnte ich keinen php include() entdecken, daher meine Bitte doch mal den kompletten Code zu posten. Sonst kann man nicht sehen, was da sonst noch im Argen liegt.



    Auch für dich ;)




    Es ist keinPHP-Befehl include(), sondern ein Codeschnipsel PHP


    MfG

    Edited once, last by flyppo ().


  • Es ist keinPHP-Befehl include(), sondern ein Codeschnipsel PHP


    Ich habe keine Ahnung was dein Hinweis soll, flyppo - der TE schrieb im Eingangspost etwas von einem php include und der ist nicht vorhanden. Das was da zu sehen ist, ist ein php echo...


    Ein include wäre etwas wie ein


    Code
    include('eine-andere-datei.php');

    Edited once, last by doing ().