PHP-Script in Fhem-Tablet-UI

Begonnen von Dansayisi, 18 September 2017, 15:58:32

Vorheriges Thema - Nächstes Thema

Dansayisi

Hallo,

Ich möchte gerne ein externes PHP-Script in Fhem-Tablet-UI binden.

<html>
..blablabla

<?php
include ("script.php");
?>


..blablabla
</html>


Obwohl ich das PHP-Script direkt über den Browser richtig ausführen kann, kann ich es über FHEM-Tablet-UI nicht. Das einfache Einbetten von PHP-Codes klappt auch nicht:

<html>
..blablabla

<?php
  
echo "Hello World!";
?>


..blablabla
</html>


Ich habe installiert: nginx, PHP7, MariaDB, FHEM 5.8. Alles auf einem Raspberry pi 3.


accessburn

Apache installieren, dort das PHP ausführen und via IFrame einbinden würde mir spontan einfallen.
Wezzy Rpi2b> FHEM, Elro, Intenso, FTUI, Jeelink v3, Max!Cube, Fire5, Foscam, NAS, Fritz!Box + Fon, Max!Wandthermostat, Amazon Echo
Wezzy Rp3b> OctoPi
Jessie Rp3b> UPNP, NAS, Pi-Hole

klausw

Zitat von: Dansayisi am 18 September 2017, 15:58:32
Hallo,

Ich möchte gerne ein externes PHP-Script in Fhem-Tablet-UI binden.

Obwohl ich das PHP-Script direkt über den Browser richtig ausführen kann, kann ich es über FHEM-Tablet-UI nicht. Das einfache Einbetten von PHP-Codes klappt auch nicht:

<html>
..blablabla

<?php
  
echo "Hello World!";
?>


..blablabla
</html>


Ich habe installiert: nginx, PHP7, MariaDB, FHEM 5.8. Alles auf einem Raspberry pi 3.

Dafür müsstest du die FHEM-Tablet-UI Seite auch über den nginx laufen lassen und nicht über das HTTPSRV Modul.
In der Hauptseite der FTUI muss nur der FHEM Pfad angepasst werden.
Aus den PHP Daten bastelt der nginx erst bei Aufruf der Website den HTML Code.
Damit du nicht mehrere Passwörter eingeben musst kannst du die FHEM Oberfläche auch gleich per reverse proxy über nginx verfügbar machen.
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

Dansayisi

Ich habe mein Problem via iFrame lösen können. Mit nginx statt Apache geht es auch. Danke für den Vorschlag.

Allerdings den Vorschlag die ganze FHEM-Umgebung über den nginx laufen zu lassen, finde ich auch sehr interessant. Mein FHEM über das HTTPSRV-Modul ist alles andere als schnell. Welche Vorteile bringt die FHEM-NGINX-Kombination? Hat jemand Erfahrung damit?

Wernieman

Ich habe es zwar über apache und nicht nginx laufen, aber damit habe ich den Vorteil, bei externen Zugriff (der leider manchmal nötig ist), die Seite bei externen Zugriff schon am Proxy per Passwort zu schützen ..
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

klausw

Zitat von: Dansayisi am 19 September 2017, 08:32:24
Allerdings den Vorschlag die ganze FHEM-Umgebung über den nginx laufen zu lassen, finde ich auch sehr interessant. Mein FHEM über das HTTPSRV-Modul ist alles andere als schnell. Welche Vorteile bringt die FHEM-NGINX-Kombination? Hat jemand Erfahrung damit?

Das FHEM läuft weiterhin über den eigenen Webserver.
Es kann nur über die reverseProxy Funktionalität auf dem gleichen Port wie der nginx laufen und auch die Passwortabfrage kann über nginx gelöst werden (also FHEMWEB selbst wird ohne Passwortabsicherung betrieben).
Je nachdem wie gut du dich mit der Konfiguration der Proxyregeln auskennst kannst du auch alle Bilder, Icons und so direkt von nginx bereitstellen lassen. Damit entlastest du FHEMWEB.
FTUI läuft direkt im nginx und ist dadurch bisschen schneller, der Hauptvorteil ist meiner Meinung nach das PHP verwendet werden kann.
Apache oder nginx ist vermutlich egal. nginx soll performanter sein.
Das wirst du sicher erst merken, wenn ein paar hundert Clients auf deine Haussteuerung zugreifen.
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

Wernieman

#6
ZitatApache oder nginx ist vermutlich egal. nginx soll performanter sein.
Auch wenn es teiweise eine Glaubensfrage ist:

nginx hat den Vorteil bei Aufgaben "mit wenigen Fremdmodulen". Apache ist Modularer und damit flexibler aber auch langsamer. Als Reiner Proxy würde ich nginx empfehlen. Wenn jetzt aber mehr dazu kommt, sollte man es sich grundsätzlich überlegen welche Schiene man fahren will.

Edit:
nginx und php geht nur über fastCGI ... da kann man sehr viel "falsch" machen.
Ich zitiere mal heise:
"Anfängern sei der Apache zu empfehlen, da dort php schon im Standard gut läuft"
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Mior

Zitat von: Dansayisi am 19 September 2017, 08:32:24
Ich habe mein Problem via iFrame lösen können. Mit nginx statt Apache geht es auch. Danke für den Vorschlag.

Allerdings den Vorschlag die ganze FHEM-Umgebung über den nginx laufen zu lassen, finde ich auch sehr interessant. Mein FHEM über das HTTPSRV-Modul ist alles andere als schnell. Welche Vorteile bringt die FHEM-NGINX-Kombination? Hat jemand Erfahrung damit?

Hi,
wollte nur mal fragen, ob du noch andere Anpassungen vorgenommen hast, damit man mit iFrame eine Seite vom Apache einbinden kann.
Bei mir funktioniert alles, also Apache ist erreichbar und ich benutze PHP7. Nur das Einbinden funktioniert leider nicht.
Danke schonmal im Voraus:)

Dansayisi

Zitat von: Peter234 am 30 Oktober 2017, 22:18:36
Hi,
wollte nur mal fragen, ob du noch andere Anpassungen vorgenommen hast, damit man mit iFrame eine Seite vom Apache einbinden kann.
Bei mir funktioniert alles, also Apache ist erreichbar und ich benutze PHP7. Nur das Einbinden funktioniert leider nicht.
Danke schonmal im Voraus:)

Hallo Peter,

leider bin ich noch nicht dazu gekommen Anpassungen vorzunehmen.