Tipps und Tricks zu Synology NAS, PHP …

Nachfolgende Hinweise lassen sich locker selbst erclouden und dienen hier nur zur Dokumentation.


Vorbereitung auf dem Synology NAS

  • Via Systemsteuerung -> Terminal & SNMP -> Terminal den SSH-Dienst aktivieren.
  • Auf einem Windows-Rechner kann dann PuTTY installiert werden, um für die nachfolgenden Aufgaben etc. auf die (Linux-)-Shell des NAS zu verbinden.

PHP-CLI auf Synology NAS aktualisieren

Beim Updaten/Installieren von PHP (z.B. PHP 7.4) via Paket-Zentrum ging das CLI bisher notorisch vergessen und muss ev. manuell durchgeführt werden:

  • Das CLI-Programm aus dem neuen/aktuellen Paket kopieren.
  • Zuerst das veraltete CLI löschen, anschliessend das aktuelle CLI kopieren
    und die Version prüfen (php -v).

    cd /bin
    rm php
    sudo cp /volume1/@appstore/PHP7.4/usr/local/bin/php74 /bin/php
    php -v

INI-File von phpMyAdmin fixen

Beim Updaten/Installieren von PHPmyAdmin via Paket-Zentrum sollte die Adaption des INI-Files passend zur neuen PHP-Version ev. manuell durchgeführt werden, um PHP-Start-Fehlermeldungen im Zusammenhang mit nicht mehr vorhandenen PHP-Extensions mcrypt und mysql zu eliminieren.
Die entsprechenden Zeilen im File phpMyAdmin.ini müssen gelöscht werden.
Um das File zu lokalisieren kann der Befehl php –ini hilfreich sein.

sugus@diskstation_2:~$ php --ini
Configuration File (php.ini) Path: /usr/local/etc/php74/cli
Loaded Configuration File:         /usr/local/etc/php74/cli/php.ini
Scan for additional .ini files in: /usr/local/etc/php74/cli/conf.d
Additional .ini files parsed:      /usr/local/etc/php74/cli/conf.d/extension.ini,
/usr/local/etc/php74/cli/conf.d/phpMyAdmin.ini,
/usr/local/etc/php74/cli/conf.d/timezone.ini

Mit der ersten zusätzlichen Zeile im File /var/services/web/phpMyAdmin/config.inc.php kann die Zeit bis zum automatischen Ausloggen bei phyMyAdmin z.B. auf 2 Stunden verlängert werden.
Dazu muss auch „session.gc_maxlifetime“ im php.ini-File auf mind. denselben Wert erhöht werden. Beim Synology-NAS kann das über das Paket-Zentrum -> Web Station -> PHP-Einstellungen durchgeführt werden.
Die 2. Zeile entfernt dann die ev. „falsche“ Warnung, falls diese trotzdem hartnäckig immer noch kommt.
(Ihre PHP Einstellung session.gc_maxlifetime ist niedriger als die in phpMyAdmin konfigurierte Cookiegültigkeit, deshalb kann Ihre Anmeldung eher ablaufen als in phpMyAdmin konfiguriert.)

$cfg['LoginCookieValidity'] = 7200 ;
ini_set('session.gc_maxlifetime', 7200);
Bei neueren Versionen phyMyAdmin fehlt womöglich die oben markierte Konfigurierbarkeit des Session-Timeouts (LoginCookieValidity).

Möchte diese Konfigurierbarkeit des Session-Timouts im UI von phyMyAdmin (Einstellungen -> Funktionen -> Allgemein) zurückhaben, dann muss im File /volume1/web/phpMyAdmin/libraries/classes/Config/Forms/User/FeaturesForm.php die folgende Ergänzung
'LoginCookieValidity',
wie folgt einschieben …

 public static function getForms()
    {
        $result = array(
            'General' => array(
                'VersionCheck',
                'NaturalOrder',
                'InitialSlidersState',
		        'LoginCookieValidity', //Add this line if it missing to allow configuration via UI
                'SkipLockedTables',
                'DisableMultiTableMaintenance',

PHP-Skripts zeitgesteuert auf dem NAS laufen lassen

Via Systemsteuerung -> Aufgabenplaner -> Erstellen -> Geplante Aufgabe -> Benutzerdefiniertes Skript eine Aufgabe erstellen und passend konfigurieren.
Dabei kann ein PHP-Skript wie folgt direkt gestartet werden (z.B.): php /volume1/backup/web/sql.php


PHP als Source für Scite bekanntmachen …

  • Falls die php.properties im Menü Options von Scite nicht erscheinen kann das File php.propertis von https://www.scintilla.org/SciTEExtras.html herunterladen werden.
  • Danach mit Admin-Rechten nach c:\ProgramData\SciTE kopieren.
    Z.B. in einer Admin-Konsole den Kopierbefehl eingeben (Bsp.):
    copy d:php.properties c:\ProgramData\SciTE
  • Danach Scite starten und die php.properties unter Options öffnen folgende Zeile einfügen und speichern. Danach sollten auch die PHP-Skripts im Open-Dialog All Sources auftauchen.
    *source.patterns.php=$(file.patterns.php);

PHP-Skript parsen

Vor der Veröffentlichung/Aktivierung eines Skripts kann es hilfreich sein, dessen Syntax zu überprüfen:
php -l phpScriptZumTesten.php
oder
php --syntax-check phpScriptZumTesten.php