Keine Verbindung zum Arduino wenn PHP Seite auf Server liegt

Hallo zusammen,

Ich habe ein kleines Problem, welches mich grade an den Rand des Wahnsinns treibt.

Ich habe eine Arduino LED Steuerung gebaut und will die Steuerung über das Internet möglich machen.
Dazu habe ich am Router eine Portfreigabe , sowie ein Dynamic DNS eingerichtet.
Zur Steuerung habe ich mir eine PHP Seite gebaut, welche über die fwrite Funktion Daten an den Arduino sendet. (Dabei nutze ich als "ip" die domain des Dynamic DNS und als Port den entsprechend über den Router freigegebenen)

Baue ich mein System nun wie folgt auf funktioniert alles reibungslos:

Die PHP Seite wird über Apache auf meinem eigenen Rechner gehostet, mittels einer eingerichteten Portfreigabe für http requests kann ich auf diese über meine DDNS domain zugreifen, die Steuerung funktioniert dabei problemlos (Auch über LTE via Smartphone getestet).

Lade ich die PHP Seite allerdings auf einen richtigen Server (Ich habe den Free Anbieter bplaced.net gewählt, welcher definitiv PHP Fähig ist), funktioniert es nicht mehr.
Zuerst dachte ich, dass evt. eine Firewall den Port blockiert, tippe ich allerdings über meinen Browser (wiederrum LTE getestet) einfach meine DDNSdomain:Port ein, erhält der Arduino eine HTTP Request.
Er ist also definitv über ddns und den entsprechenden Port erreichbar.
Diese Adresse ist auch definitv in meiner PHP Seite als Ziel angegeben (sowohl wenn ich sie über meinen eigenen Rechner hoste, als auch über bplaced.net). Beide Wege führen also meiner Kenntnis nach über das globale Netz, somit dürfte es nicht daran liegen, dass die Seite in dem funktionierenden Fall über mein Heimnetz, an dem auch der Arduino hängt, gehostet wird.

Habt ihr irgendwelche Ideen, wo das Problem liegen könnte?
Ich bin für alle Ideen und Antworten dankbar :slight_smile:

Schau mal hier rein.
Evtl. ist auf Deinem Server allow_url_fopen nicht gesetzt.

Gruß Tommy

Hey Tommy, danke für deine Antwort... Wie kann ich herausfinden ob allow fopen URL gesetzt ist?

phpinfo()

Auch mal die PHP Fehlermeldungen aktivieren.
Denn: PHP schreit um Hilfe, aber du hörst nicht zu.

Danke für deine Hilfe combie,

Ich habe durch phpinfo() herausgefunden, dass allow_url_fopen deaktiviert war und habe es nun aktiviert.
Trotzdem funktioniert es noch nicht.
Ich habe die Ausgaben von phpinfo auf meinem Apache Server (über den es funktioniert) mit denen des hosters (über den es nicht funktioniert) verglichen und mir ist ausser der behobenen allow_url_fopen kein Unterschied zwischen beiden Ausgaben aufgefallen.

Kann das Problem noch an einer anderen Stelle liegen?
Oder gibt es irgend eine Möglichkeit zu "checken" ob das PHP Skript die Daten sendet?

LG
Alex

Probier mal folgendes: Stelle eine Datei php.ini mit folgendem Inhalt auf den Server:

error_reporting = E_ALL
display_errors = On

Dann sollten die Fehlermeldungen im Browser erscheinen.
Evtl. danach nochmal phpinfo aufrufen.

Danach die Datein wieder löschen, sie geben möglichen Angreifern zu viele Infos.

Gruß Tommy