HttpWakeUp Wake-On-LAN Pakete per Webinterface verschicken

Aus Synology Wiki
Wechseln zu: Navigation, Suche

Einleitung

Dieses PHP-Script ermöglicht es PCs im eigenen LAN per Webinterface mittels Wake-On-LAN aufzuwecken. Zum Versenden von Magic-Packets wird das Programm wakelan verwendet.


Voraussetzungen

  • Zugriff per Kommandozeile muss aktiviert sein
  • IPKG muss installiert sein
  • Web-Station muss aktiviert sein

Manuelle Installation

wakelan installieren

Zunächst muss das Paket wakelan installiert werden:

ipkg install wakelan

HttpWakeUp auf den Webserver kopieren

Als nächstes muss die Datei httpWakeUp.zip heruntergeladen werden. Diese muss anschließend entpackt und der enthaltene Ordner auf die Freigabe der Web-Station kopiert werden.

httpWakeUp.zip

\\<Diskstation Name>\web

php.ini anpassen

Um mit PHP die Funktion exec() in allen Verzeichnissen Nutzen zu können:

  • In System-steuerung > Webdienste > PHP-Einstellungen den Punkt PHP safe_mode_execdir-Zugriffsbeschränkung aktivieren abwählen.
  • Alternativ ist eine Anpassung in der php.ini möglich:
vi /usr/syno/etc/php.ini

In der php.ini folgende Zeile

safe_mode_execdir = /usr/syno/bin

abändern in

safe_mode_execdir = 

Abschließend nicht vergessen den httpd neuzustarten!

Konfiguration

Zu Konfiguration muss die Datei /volume1/web/httpWakeUp/conf/conf.php angepasst werden.

Parameter

  • username -- ein frei wählbarer Benutzername
  • password -- ein frei wählbares Passwort
  • defaultProfiles -- ein Array für vorkonfigurierte PCs die aufgeweckt werden sollen
    • name -- eine frei wählbare Bezeichnung
    • mac -- die MAC Adresse des PCs (ohne Doppelpunkte oder Bindestriche)
    • broadcast -- die Broadcast Adresse des Netzwerks an die das MagicPacket verschickt werden soll
    • port -- der Port an den das MagicPacket verschickt werden soll (sollte in der Regel Port 9 sein)
  • wakeLanCall -- der Aufruf für wakelan
  • logFileName -- der Dateiname für das Logfile


conf.php:


<?php 
    $username = "benutzername"; 
    $password = "secret"; 
    $defaultProfiles = array( 
                        array(
                              "name" => "Bezeichnung PC1", 
                              "mac" => "FFFFFFFFFFFF", 
                              "broadcast" => "192.168.1.255", 
                              "port" => "9"
                        ), 
                        array(
                              "name" => "Bezeichnung PC2", 
                              "mac" => "FFFFFFFFFFFF", 
                              "broadcast" => "192.168.1.255", 
                              "port" => "9"
                        ) 
                    ); 
    $wakelanCall = "/opt/bin/wakelan -b %s -m %s -p %s"; 
    $logFileName = "log/log.txt"; 

Verwendung

Das Script ist sollte nun unter der Adresse http://IP-der-Diskstation/httpWakeUp erreichbar sein. Dort muss zunächst der Benutzername und das Passwort zur Anmeldung eingegeben werden. Anschließend kann entweder an einen der vorkonfigurierten PCs ein MagicPacket gesendet werden oder mittels der Formularfelder ein beliebiger anderer PC im LAN aufgeweckt werden.

Das WakeOnLAN SPK-Paket

Die aktuelle Version ist Version 2.5. Die hier dargestellte Version ist Version 1.0.

Wem das triste schwarz/weiß zu langweilig ist, lädt das SPK-Paket WakeOnLAN*.spk. Dieses gibt es bei der Quelle http://spk.q14six.de, die man im Backend der DiskStation hinzufügen kann. Bevor das Wecken per LAN (auch über das Internet) losgehen kann, sind allerdings noch ein paar Einstellungen nötig!

  • das IPKG-Paket wakelan muss installiert sein;
  • unter Systemsteuerung->Webdienste->PHP-Einstellungen muss die Option: PHP open_basedir benutzerdefiniert aktiviert sein und folgendes hinzugetragen werden :/var/packages/wakeonlan/target, sonst kann die Mobile-Version nicht genutzt werden;
  • ein MySQL Benutzer muss angelegt sein (es geht auch der ROOT-Account);
  • eine Datenbank mit beliebigen Namen muss angelegt werden;

Alternativen

Wer eine automatisierte Lösung sucht, bzw. keine Pakete nachinstallieren will, findet hier die Lösung:
WOL nur mit PHP auch über das Internet --Brandelh 13:15, 13. Jul. 2011 (UTC)