"Allow list for WOPI requests" über PHP-Script aktualisieren

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.

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