Openmediavault mit Webserver

Posted by quark007 | Posted in Computer & IT | Posted on 07-01-2015-05-2008

4

Zu Weihnachten habe ich einen HP ProLiant G1610T MicroServer geschenkt bekommen. Dieser soll hauptsächlich als zentraler Datenspeicher dienen. Doch wenn man schon die Möglichkeit hat, möchte ich viele Skripte von meinem Webspace nach Hause holen. Als Betriebssystem habe ich mich für OpenMediaVault auf Debian-Basis entschieden.

Als erstes sollte man sich der Installation des OMV-Extras-Plugin widmen. Eine Erläuterung dazu findet man hier -> http://omv-extras.org/

Für die Installation des nginx-Webservers gibt es einige Dinge die beachtet werden sollten:

  • als erstes sollte ein eigener Freigegebener Ordner (Shared Folder) erstellt werden. Damit lassen sich die Webserver-Dateien gut vom Rest trennen. Bei der späteren Einrichtung ist dieser Ordner auszuwählen
  • Anschließend installiert man den nginx-Server über die Erweiterungen (Plugins).
  • Vor der Einrichtung eines Servers muss zunächst ein Pool über den Reiter “Pools” erstellt werden. Dieser ist für die Verwendung von PHP notwendig.
  • Die Konfiguration eines Webservers funktioniert über den Reiter Server. Dort wird jedem Server ein eigener Port zugewiesen, über den er aus dem Netzwerk erreichbar ist.
  • Anschließend muss der nginx-Server auf der Settings-Seite aktivieren werden

So weit so gut, nun fehlt ja nur noch MySQL. Viele meiner Skripte speichern Daten in Datenbanken, sodass ich auf diese Funktion nicht verzichten konnte. Eigentlich klingt es genauso einfach wie die Webserver-Installation: PlugIn installieren, Freigegebenen Ordner erstellen, MySQL aktiveren und fertig. Doch so einfach war es nicht. Nach insgesamt knapp 7 Stunden habe ich es dennoch geschafft.

Das Problem ist, dass das OpenMediaVault-Plugin die Datenbank in einen freigegebenen Ordner verschieben will. Die bei der Installation erzeugten Datenbank-Dateien (sozusagen das MySQL-Profil) wird beim Aktivieren auch korrekt in den richtigen Ordner verschoben. Nur blöd, dass der MySQL-Server dann nicht mehr starten will. Daher gibt es auch eine Fehlermeldung, weil er angeblich keinen Schreibzugriff auf eine Datenbankdatei hat (laut /var/log/syslog).

Failed to execute command 'export LANG=C; invoke-rc.d 'mysql' stop 2>&1': Stopping MySQL database server: mysqld failed!
invoke-rc.d: initscript mysql, action "stop" failed.

Error #4000:
exception 'OMVException' with message 'Failed to execute command 'export
 LANG=C; invoke-rc.d 'mysql' stop 2>&1': Stopping MySQL database 
server: mysqld failed!
invoke-rc.d: initscript mysql, action "stop" failed.' in 
/usr/share/php/openmediavault/initscript.inc:176
Stack trace:
#0 /usr/share/php/openmediavault/initscript.inc(148): OMVSysVInitScript->invoke('stop')
#1 /usr/share/php/openmediavault/initscript.inc(53): OMVSysVInitScript->stop()
#2 /usr/share/openmediavault/engined/module/mysql.inc(126): OMVSysVInitScript->exec()
#3 /usr/share/openmediavault/engined/rpc/config.inc(164): OMVModuleMySQL->stopService()
#4 [internal function]: OMVRpcServiceConfig->applyChanges(Array, Array)
#5 /usr/share/php/openmediavault/rpcservice.inc(125): call_user_func_array(Array, Array)
#6 /usr/share/php/openmediavault/rpcservice.inc(158): OMVRpcServiceAbstract->callMethod('applyChanges', Array, Array)
#7 /usr/share/openmediavault/engined/rpc/config.inc(224): OMVRpcServiceAbstract->callMethodBg('applyChanges', Array, Array)
#8 [internal function]: OMVRpcServiceConfig->applyChangesBg(Array, Array)
#9 /usr/share/php/openmediavault/rpcservice.inc(125): call_user_func_array(Array, Array)
#10 /usr/share/php/openmediavault/rpc.inc(79): OMVRpcServiceAbstract->callMethod('applyChangesBg', Array, Array)
#11 /usr/sbin/omv-engined(501): OMVRpc::exec('Config', 'applyChangesBg', Array, Array, 1)
#12 {main}

Einer Überprüfung hält diese Meldung aber nicht stand.

Nach langer Suche im Internet bin ich auf eine “uralte” Seite gestoßen, in der schon 2009 das verschieben der MySQL-Datenbanken beschrieben wird. Der eigentliche Clou an der Sache: es wird keine Änderung an der MySQL-Konfiguration vorgenommen (daher vermutlich die Probleme beim Start), sondern es wird lediglich ein Link zwischen dem Alten und dem Neuen Datenbankverzeichnis erstellt. Meine Vorgehensweise war wie folgt:

  1. Im Interface den MySQL-Server einstellen, speichern und die Config übernehmen. Der Prozess wird mit einem Fehler beendet werden. Diesen noch nicht schließen sondern zunächst über SSH einloggen.
  2. Mysql-Server stoppen:
    service mysql stop
  3. Alle Daten in das Verzeichnis, das auch in OMV für die Freigabe ausgewählt wurde
    cp -a -r /var/lib/mysql/* /media/[HDD-ID]/[VERZEICHNIS]
    
    rm -r /var/lib/mysql
  4. Nun den Link erstellen
    ln -s /media/[HDD-ID]/[VERZEICHNIS] /var/lib/mysql
  5. Da OMV die MySQL-Config zudem angepasst hat, muss man das wieder rückgängig machen. Dafür muss in der Datei /etc/mysql/my.cnf noch der Link auf den Ordner mit der neuen Konfiguration entfernt werden
    sudo nano /etc/mysql/my.cnf

    und am Ende der Datei folgende Zeile auskommentieren

    !includedir /etc/mysql/conf.d/
    <---- zu ---->
    #!includedir /etc/mysql/conf.d/
  6. MySQL-Server wieder starten
    # service mysql start
  7. Nun wieder in das OMV-Webinterface gehen und aktualisieren. Es kann sein, dass man die Konfiguration nochmals übernehmen muss. Das ändert an den gemachten Änderungen aber nichts. Nun funktioniert auch MyWebSQL verfügbar.

Falls meine Anleitung nicht funktioniert gibt es hier noch weitere Tips:

hier noch ein paar verwendete Befehle, die ich vielleicht selber irgendwann mal wieder brauche:

apt-get --purge remove libdbd-mysql-perl libmysqlclient18:i386 mysql-client-5.5 mysql-common mysql-server-5.5 openmediavault-mysql php5-mysqlnd mysql-server-core-5.5 mysql-server 
rm /var/lib/mysql/ -r
rm /etc/mysql/ -r

apt-get install libdbd-mysql-perl libmysqlclient18:i386 mysql-client-5.5 mysql-common mysql-server-5.5 openmediavault-mysql php5-mysqlnd mysql-server-core-5.5 mysql-server 

cp -a -r /var/lib/mysql/* /media/´[HDD-ID]/sqldata

ln -s /media/[HDD-ID]/sqldata /var/lib/mysql

Comments posted (4)

[…] war es mir endlich möglich sowohl die OpenMediaVault-WebGUI, das WebMysql, Owncloud und auch meine Webserver mit einem Zertifikat über HTTPS zu erreichen. […]

[…] in einem früheren Beitrag zu lesen war, habe ich einen HP-Server als NAS eingerichtet. Da ich nun auch meinen Eltern […]

[…] entschieden auch diese zentral auf meinem Server zu verwalten. Es gibt zwar ein Calibre-Plugin für OpenMediaVault, ich wollte jedoch das einlesen neuer Bücher in die DB automatisieren. Über eine komplette […]

[…] überquillen zu lassen, habe ich sozusagen ein Archiv angelegt (Lokalen Ordner), den ich auf mein NAS gelegt habe. Das hat super funktioniert auch mit mehreren Computern gleichzeitig (XPS13, NC10, […]

Write a comment