Forum: PC-Programmierung Apache_PHP_Browserfenster bleibt weiß


von Marco17 (Gast)


Lesenswert?

Hallo,
Auf meinem Raspberry läuft Apache2 und ich kann leider nur die Testseite 
von PHP
öffnen. Diese wird richtig angezeigt.

Als ich eine weitere PHP Seite öffnen wollte welche auch HTML enthält 
bleibt der Browser weiß und nichts passiert.

Im Error Log steht nur access denied und der Pfad der PHP Datei. Die 
Datei ansich sollte funktionieren da diese andere user erfolgreich 
ausführen konnten.

Obwohl die Datei HTML enthält habe ich sie so abespeichert

phpversuch.php

In die URL hab ichs so eingegeben

localhost/phpversuch.php

Wie schon gesagt die Testseite funktioniert, aber diese besteht nur aus 
PHP und es ist kein HTML Code enthalten.
Die Index.html geht auch.

Wäre nett wenn jemand einen Tipp hätte

:)

von Peter II (Gast)


Lesenswert?

Marco17 schrieb:
> Wäre nett wenn jemand einen Tipp hätte

einfach mal die Rechte richtig vergeben? Wenn access denied kommt, wird 
das wohl einen Grund haben.

von T.roll (Gast)


Lesenswert?

Marco17 schrieb:
> Im Error Log steht nur access denied

Ach komm.
Übersetzen wir die beiden Worte in unsere Sprache:
"Zugriff verweigert".
→
Apache kann auf deine Dateien nicht zugreifen.

* Wo hast du die Datei gespeichert?
* Wie sehen die Rechte aus?

von Marco17 (Gast)


Lesenswert?

Ich hab sie unter /var/www/html gespeichert. Dort liegt ebenfalls die 
Test.php <----die funktioniert aber. Die PHP Datei was nicht 
funktioniert habe ich vom USB Stick runter gezogen und in /var/www/html 
gespeichert.

Warum kann ich auf die eine Datei zugeifen und auf die andere nicht. 
Wenn ich die Endung der PHP auf HTML ändere kann ich zugreifen. es wird 
halt nur text angezeigt.

Danke

von Daniel A. (daniel-a)


Lesenswert?

Bei einem Berechtigungsproblem sollte Apache die "403 Forbidden" Seite 
senden. bei einer Weissen Seite würde ich auf einen 500 Fehler tippen. 
Den Fehlercode canst du im Networktab deines Browsers nachsehen, bei 
Firefox und Chrome mit F12 zu finden. Alternativ kann man auch curl oder 
wget nehmen.

Ich würde auf jeden fall in php error_reporting un display_errors 
setzen. Das geht in /etc/php/apache*/php.ini oder mit php_flag im apache 
vhost oder einer .htaccess datei.

von S R (Gast)


Lesenswert?

Setze doch einmal den Eigner der Datei auf www-data, bzw. den 
ausführenden User. Wurde doch nun schon 3 mal gesagt.

chown ist das Zauberwort.

von chmod (Gast)


Lesenswert?

chmod +x

von Pandur S. (jetztnicht)


Lesenswert?

Die bestehende php Seite wird auch als localhost/xxxx.php aufgerufen ?

Dann zeig doch mal die php datei.
Resp nimm mal eine minimalistische :

<?php
 var_dump $SERVER;
 echo('hallo');
?>

von Peter II (Gast)


Lesenswert?

chmod schrieb:
> chmod +x

wozu? php werden nicht von den Shell ausgeführt.

Sie haben auch kein Shebang.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Daniel A. schrieb:
> Bei einem Berechtigungsproblem sollte Apache die "403 Forbidden" Seite
> senden.

Eben. Ich vermute auch eher, dass sich "access denied" auf einen 
PHP-Befehl innerhalb des Scripts bezieht. "access denied" kommt mir 
allerdings etwas merkwürdig vor. In der Regel heisst das "permission 
denied". Aber vielleicht war der TO etwas lässig bei der Wiedergabe der 
Fehlermeldung.

Soll der TO mal das PHP-Script und die komplette Fehlermeldung posten. 
Alles andere ist Spekulatius.

von Daniel A. (daniel-a)


Lesenswert?

Oh D. schrieb:
> <?php
>  var_dump $SERVER;
>  echo('hallo');
> ?>

Müsste es nicht eher so sein:
1
<?php
2
  var_dump( $_SERVER );
3
  echo 'hallo';
4
?>

von Marco17 (Gast)


Lesenswert?

<?php
/*********************************************************************** 
*********************
                                                             *
                                                                                            *
  PROJEKT: Ausgabe der durch den Arduino generierten Temperaturwerte der 
letzten 12 Stunden *
                                                                                            *
************************************************************************ 
********************/
?>

<!DOCTYPE HTML>
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <meta name="viewport" content="user-scalable=yes, width=device-width">
  <title>ARDUINO - Aktuelle Temperatur</title>
</head>
<body>

<table>
  <tr>
    <td width="120">Datum</td>
    <td width="120">Zeit</td>
    <td width="120">Innen</td>
    <td width="120">Außen</td>
  </tr>

<?php
include("var/www/html/inc/db.inc.php");

$q_data  = mysql_query("SELECT DATE_FORMAT(datumzeit,'%d.%m.%Y') AS 
DATUM, DATE_FORMAT(datumzeit,'%H:%i') AS ZEIT, temp1, temp2 FROM 
arduino_temperaturen WHERE `datumzeit` >= date_sub(now(), interval 12 
hour) AND `datumzeit` <= now()  GROUP BY DATE_FORMAT(datumzeit, 
'%Y-%m-%d %H') ORDER BY datumzeit DESC") or die(mysql_error());
if(mysql_num_rows($q_data) > 0)
{
  while($r_data = mysql_fetch_array($q_data))
  {
    echo "<tr>\n";
    echo "  <td>".$r_data['DATUM']."</td>\n";
    echo "  <td>".$r_data['ZEIT']."</td>\n";
    echo "  <td>".number_format($r_data['temp1'], 2, '.', 
'')."°C</td>\n";
    echo "  <td>".number_format($r_data['temp2'], 2, '.', 
'')."°C</td>\n";
    echo "</tr>\n";
  }
}
else
{
  $E = 1;
  $M = "Es wurden keine Temperaturwerte in der Datenbank gefunden!";
}
?>

    </table>
  </body>
</html>

Ist von Fluux.de
Das Schreiben in die Datenbank funktioniert wunderbar

LG

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Marco17 schrieb:
> Im Error Log steht nur access denied und der Pfad der PHP Datei.

Marco17 schrieb:
> <?php
> include("var/www/html/inc/db.inc.php");

Im Error Log steht welcher Pfad welcher PHP-Datei?

Poste bitte die exakte Fehlermeldung. Oder wartest Du lieber auf weitere 
Spekulationen?

: Bearbeitet durch Moderator
von Pandur S. (jetztnicht)


Lesenswert?

> include("var/www/html/inc/db.inc.php");

ist natuerlich Quatsch. Dort muss der Weg von der Document Root stehen, 
und das waere dann ueblicherweise

 include '/html/inc/db.inc.php';

von Daniel A. (daniel-a)


Lesenswert?

Oh D. schrieb:
>> include("var/www/html/inc/db.inc.php");
>
> ist natuerlich Quatsch. Dort muss der Weg von der Document Root stehen,
> und das waere dann ueblicherweise
>
>  include '/html/inc/db.inc.php';

Nö, dann wäre das:
1
include($_SERVER['DOCUMENT_ROOT']."/inc/db.inc.php");

Besser wäre es aber, das ganze mit relativen Pfaden zu machen:
1
include("inc/db.inc.php");

von Daniel A. (daniel-a)


Lesenswert?

Frank M. schrieb:
> Daniel A. schrieb:
>> Bei einem Berechtigungsproblem sollte Apache die "403 Forbidden" Seite
>> senden.
>
> Eben. Ich vermute auch eher, dass sich "access denied" auf einen
> PHP-Befehl innerhalb des Scripts bezieht. "access denied" kommt mir
> allerdings etwas merkwürdig vor. In der Regel heisst das "permission
> denied". Aber vielleicht war der TO etwas lässig bei der Wiedergabe der
> Fehlermeldung.

Ich denke er hat falsche Anmeldedaten beim MYSQL Verbindungsaufbau 
angegeben. Dann bekommt man 'Access denied':
1
abd@basalt ~ $ mysql -u root -h mysql
2
ERROR 1045 (28000): Access denied for user 'root'@'basalt' (using password: NO)

> Soll der TO mal das PHP-Script und die komplette Fehlermeldung posten.
> Alles andere ist Spekulatius.

Finde ich auch.

von Marco17 (Gast)


Lesenswert?

Hallo, jetzt hät ich hier den ganzen Fehlercode

Danke

[Sat Jun 25 15:26:01.517122 2016] [:error] [pid 1770] [client 
127.0.0.1:35328] PHP Warning:  Unknown: failed to open stream: 
Permission denied in Unknown on line 0


[Sat Jun 25 15:26:01.517444 2016] [:error] [pid 1770] [client 
127.0.0.1:35328] PHP Fatal error:  Unknown: Failed opening required 
'/var/www/html/test1.php' 
(include_path='.:/usr/share/php:/usr/share/pear') in Unknown on line 0

von Timm R. (Firma: privatfrickler.de) (treinisch)


Lesenswert?

Hallo,

also wenn das der Logauszug zu einem Aufruf deiner Datei ist, dann ist 
das, was Du oben gezeigt hast nicht der Inhalt der Datei.

vlg
 Timm

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.