eAndy
May 13, 2024, 1:36pm
1
Hallo zusammen,
da meine Nextcloud über eine FritzBox und einer Dynamischen IP mit dem Internet verbunden ist, würde ich gerne mein PHP-Script nutzen, welches die Dynamische Ip-Adresse über Dyn-DNS bei meinem Internet-Präsenz-Provider aktualisiert um den “Allow list for WOPI requests” der Nextcloud Office App zu aktualisieren.
Sämtliche Versuche die “Allow list for WOPI requests” über das PHP-Script zu aktualisieren schlugen fehl:
$output = shell_exec(“sudo -u www-data /usr/bin/php8.3 -f /pfad/zur/occ config:app:set richdocuments wopi_allowlist --value=xxx.xxx.xxx.xxx”);
$output = exec(“sudo -u www-data /usr/bin/php8.3 -f /pfad/zur/occ config:app:set richdocuments wopi_allowlist --value=xxx.xxx.xxx.xxx”);
$command = “sudo -u www-data /usr/bin/php8.3 -f /pfad/zur/occ config:app:set richdocuments wopi_allowlist --value=xxx.xxx.xxx.xxx”;
$output = shell_exec($command);
include “/pfad/zur/occ config:app:set richdocuments wopi_allowlist --value=xxx.xxx.xxx.xxx”;
include “…/pfad/zur/occ config:app:set richdocuments wopi_allowlist --value=xxx.xxx.xxx.xxx”;
PHP gibt keine Fehlermeldung.
Hat hier jemand eine Spur einer Ahnung wie ich dies hinbekommen könnte.
H5N1
May 15, 2024, 5:25am
2
Wie wäre es wenn du es mit einem Script und crontab machst
So wie ich es hier beschrieben habe.
Oder doch via php, bitte Pfade anpassen. Achtung ungetestet.
<?php
// Pfade definieren
$wopi_ip_file = 'wopi-ip.txt';
$wopi_ip_hist_file = 'wopi-ip-hist.txt';
$cloud_occ_command = '/usr/bin/php8.2 -f /path/to/your/Cloud/occ';
// Aktuelle dynamische IP-Adresse aus Datei lesen
$dyn_ip = file_get_contents($wopi_ip_file);
// Externe IP-Adresse abrufen
$external_ip_data = file_get_contents('http://checkip.dyndns.org');
preg_match('/Current IP Address: ([\d\.]+)/', $external_ip_data, $matches);
$ext_ip = $matches[1];
if (empty($ext_ip)) {
echo "Keine Internetverbindung. Keine IP zum Aktualisieren.\n";
} elseif ($dyn_ip === $ext_ip) {
echo "Ist aktuell $dyn_ip\n";
} elseif ($dyn_ip !== $ext_ip) {
// IP in Datei und Historie speichern
file_put_contents($wopi_ip_file, $ext_ip);
file_put_contents($wopi_ip_hist_file, date("m.d.Y") . ' ' . $ext_ip . "\n", FILE_APPEND);
echo "DynDNS ist nicht aktuell, Update gestartet: Neue IP = $ext_ip\n";
// Konfiguration in Cloud anpassen
$command = "$cloud_occ_command config:app:set richdocuments wopi_allowlist --value=$ext_ip";
exec($command, $output, $return_var);
if ($return_var !== 0) {
echo "Fehler beim Ausführen des Cloud-Befehls.\n";
print_r($output); // Fehlermeldung ausgeben
}
} else {
echo "ERROR\n";
}
Am besten das Script auch alle 10min mit crontab ausführen, so wird ohne dein zu tun die IP immer aktuell gehalten.
Grüße