PHP-Datei auf Apache mit Arduino ausführen

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

firatar

Benutzer
Registriert
20. Dez. 2017
Beiträge
6
Reaktionspunkte
0
Punkte
0
Hallo zusammen,

ich habe mir für zukünftige Projekte eine DS216j gekauft.
Aktuelles Projekt: Ich habe einen Arduino UNO, der Daten über einen GET Request an ein PHP-Skript sendet. Dieses schreibt dann die Daten in meine Datenbank. Für diese Geschichte habe ich einen Benutzer "Arduino" erstellt und in der Web-Station die Funktion "Eigene Webseite" aktiviert. Dadurch hat dieser Benutzer einen eigenen "www" Ordner indem die PHP-Datei liegt. Wenn ich nun über Port 80 zugreifen will, läuft doch standardmässig der nginx oder?

Ich möchte aber gerne den Apache nutzen. Also habe ich einen vHost(Apache ausgewählt) erstellt, der den Port 112 auf den web-Ordner leitet. Somit müsste doch der web-Ordner unter Apache laufen?

Frage: Habe ich das soweit richtig eingestellt? Wie kann ich prüfen, ob auch wirklich der Apache läuft?


Ich danke Euch schon mal im voraus!
Florian
 
- Firefox-Erweiterung 'Live HTTP-Headers', (sofern Firefox noch nicht die aktuelle Version ist), zeigt das an
- Eigenes PHP-Script und da mit CURL die Seite für den Arduino abrufen (mit den passenden Optionen zeigt CURL auch alle Header)
 
Hi mega,

Danke für Deine Antwort. Doch irgendwie funktionieren Deine Tipps bei mir leider nicht.

Habe ich denn mit dem Einrichten des vHosts alles soweit richtig gemacht?
Ich habe das Gefühl, dass der web-Ordner vom Benutzer "Arduino" trotzdem unter nginx läuft.
 
Ich habe nun im normalen web-Ordner einen Ordner "base" erstellt. Da drinn liegen nun die PHP-Dateien.
Den vHost (mit Apache 2.2) von Port 112 leitet nun auf diesen Ordner (also web/base).

Doch wenn ich mit dem Arduino folgende Requests aufrufe, erhalte ich Fehlermeldungen:

Request 1:
client.print("GET /data.php?Name=");
client.print(name);
client.print("&Alter=");
client.print(alter);
client.println(" HTTP/1.1");
client.print("Host: ");
client.println(server);
client.println("Connection: close");
client.println();

> Darauf erhalte ich diese Fehlermeldung:

HTTP/1.1 400 Bad Request
Server: NAS
Date: Mon, 08 Jan 2018 13:18:20 GMT
Content-Type: text/html; charset=iso-8859-1
Content-Length: 226
Connection: close
Vary: Accept-Encoding

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
</body></html>



Request 2:

client.print("GET /data.php?Name=");
client.print(name);
client.print("&Alter=");
client.print(alter);
client.println(" HTTPx/1.1"); << Änderung hier das x
client.print("Host: ");
client.println(server);
client.println("Connection: close");
client.println();

Erhaltene Fehlermeldung:

HTTP/1.1 400 Bad Request
Server: NAS
Date: Mon, 08 Jan 2018 13:23:33 GMT
Content-Type: text/html
Content-Length: 166
Connection: close

<html>
<head><title>400 Bad Request</title></head>
<body bgcolor="white">
<center><h1>400 Bad Request</h1></center>
<hr><center>nginx</center>
</body>
</html>

Doch warum kommt hier nginx ? Ich habe doch Apache ausgewählt.
 
Schon mal versucht in der Web Station unter „Allgemeinen Einstellungen“ den HTTP-Backend-Server auf Apache umzustellen und nicht nur im VHost?
 
Hi BigRonin,

ja ist bereits auf Apache eingestellt eingestellt.

Es ist auch seltsam, wenn ich den Request mit dem Arduino nur einmal sende funktioniert es. Doch sobald ich es wiederholt in einer Schleife sende, kommen die Fehlermeldungen obwohl es der gleiche Request ist.
 
>>> PROBLEM GELÖST <<<

Das Problem lag nicht am Webserver.

Ich habe nochmal einen neuen Code für den Arduino geschrieben, mit dem es jetzt funktioniert. Webserver und vHost unverändert.

Danke Euch für die Tipps!
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat