Debian: VirtualBox Guest Addons installieren

Um auf einem Debian 8 System die VirtualBox AddOns zu installieren können folgende Befehle benutzt werden:

apt-get install build-essential module-assistant
m-a prepare

Jetzt die CD mit den Dateien für die VirtualBox AddOns einlegen. Dieses wird bei virtuellen Computern (wie hier bei der VirtualBox) in fast allen Fällen per ISO Datei gemacht. Die passende ISO Datei mit den AddOns finden Sie kostenlos auf der VirtualBox Webseite.

Der folgende Schritt wird häufig vollautomatisch durch Debian übernommen. Nur wenn die CD nicht automatisch nach dem virtuellen Einbinden über die VirtualBox Oberfläche erscheint, bitte den folgenden Befehl ausführen:

mount /media/cdrom

Jetzt die Installation der AddOns von der CD starten:

sh /media/cdrom/VBoxLinuxAdditions.run

Nachdem die Installation beendet wurde, den virtuellen Computer bitte einmal neu starten. Erst danach werden alle AddOns (Mousezeiger, Auflösung, etc.) vollständig übernommen.

Fehler "AH00016: Configuration Failed" durch SSL Zertifikate beheben

Wenn der Apache2 Server plötzlich streikt und als Fehlermeldung nur ein "AH00016: Configuration Failed" kommt, hilft diese Anleitung vielleicht zur Lösung.

Die Analyse der Apache-Konfiguration wird ja in solchen Fällen meist als erstes durchgeführt:

apachectl configtest

Das Ergebnis ist bei diesem Fehler allerdings meist ernüchternd (jedoch richtig):

Syntax OK

Der Syntax der Apache2 Konfiguration und Config-Dateien ist auch richtig; es ist meist ein fehlerhaftes SSL Zertifikat. Nur welches, wenn auf dem Apache ein paar mehr Server / Domains mit SSL laufen ?

Die Lösung bietet das Tool strace, welches einfach per "apt-get" installiert werden kann:

apt-get install strace

Mit hilfe dieses Programmes kann der Start des Apache-Servers detailliert analysiert und das fehlerhafte SSL Zertifikat identifiziert werden:

strace -f apache2ctl start

Wer jetzt die meist sehr umfangreiche Ausgabe nicht verfolgen konnte, der kann diese auch durch folgenden Befehl in eine Datei umleiten lassen:

strace -f apache2ctl start &> log.txt

Jetzt finden Sie die vollständige Ausgabe der Apache2-Start-Analyse in der Datei "log.txt".

Am Ende finden Sie auch die o.a. Fehlermeldung des Servers:

[pid  7199] exit_group(1)               = ?
[pid  7199] +++ exited with 1 +++
<... wait4 resumed> [{WIFEXITED(s) && WEXITSTATUS(s) == 1}], 0, NULL) = 7199
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=7199, si_uid=0, si_status=1, si_utime=3, si_stime=7} ---
rt_sigreturn()                          = 7199
write(1, "Action 'start' failed.\n", 23) = 23
write(1, "The Apache error log may have mo"..., 48) = 48
exit_group(1)                           = ?
+++ exited with 1 +++

Suchen Sie dann in den Zeile davor rückwärts die Fehlermeldung, welche z.Bsp. so aussehen kann:

[pid  7218] close(57)                   = 0
[pid  7218] munmap(0x7f70ca8b2000, 4096) = 0
[pid  7218] open("/home/example/ssl.key", O_RDONLY) = 57
[pid  7218] fstat(57, {st_mode=S_IFREG|0700, st_size=3268, ...}) = 0
[pid  7218] mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f70ca8b2000
[pid  7218] read(57, "-----BEGIN PRIVATE KEY-----\nMIIJ"..., 4096) = 3268
[pid  7218] close(57)                   = 0
[pid  7218] munmap(0x7f70ca8b2000, 4096) = 0
[pid  7218] write(21, "[Sun May 01 09:34:22.173754 2016"..., 182) = 182
[pid  7218] write(2, "AH00016: Configuration Failed\n", 30) = 30
[pid  7218] select(0, NULL, NULL, NULL, {0, 10000}) = 0 (Timeout)
[pid  7218] close(53)                   = 0

Im oberen Beispiel ist es die Datei "/home/example/ssl.key", welche das Problem verursacht.

Korrigieren Sie das SSL Zertifikat (die Datei neu auf den Server kopieren o.ä.) und starten Sie den Apache dann erneut:

/etc/init.d/apache2 restart

Meist wird er dann problemlos wieder starten:

[ ok ] Restarting apache2 (via systemctl): apache2.service.

Achtung bei Templates von "Apollo" (apollotheme.com)

ApolloThemes.com ist ein Anbieter von Templates für Webseiten, OnlineShops und augenscheinlich vieles mehr.

Bei der Installation eines PrestaShop Templates (genau: "1611-free-ap-funiture") haben wir auf einem Testserver jedoch folgende (aus unserer Sicht beunruhigende und recht versteckt eingebaute) "Features" entdeckt:

Das Template kommuniziert u.a. mit folgenden Servern, ohne dass diese Kommunikation oder Aktivität der Benutzer (bzw. hier der Shopbetreiber) klar und deutlich darauf hingewiesen wird:

http://apollotheme.com
http://apollotheme.com/upfiledownload/slidershow/jquery.themepunch.enablelog.js
http://apollotheme.com/upfiledownload/slidershow/jquery.themepunch.revolution.js
http://apollotheme.com/upfiledownload/slidershow/jquery.themepunch.tools.min.js

https://www.youtube.com
https://www.youtube.com/embed/iZoR21juRzs

https://s.ytimg.com
https://s.ytimg.com/yts/jsbin/www-embed-player-vflSg2DNi/www-embed-player.js
(und einigen URLs auf dieser Domain für CSS und JS mehr)

https://www.google.com
https://www.google.com/js/bg/MdyApZkAHG2-UELdOwjNjjFZXSz-CGj4o1JtDR7aGgs.js

https://static.doubleclick.net
https://static.doubleclick.net/instream/ad_status.js

Gerade die Links zu "doubleclick.net" und "google.com" (inkl. "youtube.com") sind nach unserer Ansicht bedenklich. Sie könnten dem ahnungslosen Betreiber ders OnlineShops als Tracking- bzw. Analysetools ausgelegt werden und dadurch durch die Konkurrenz oder Verbraucherschutzeinrichtungen abgemahnt werden. Die Kosten könnten beträchtlich sein. Der deutsche Datenschutz ist in diesem Punkt (und das ist gut so !) sehr streng; das zeigt auch die aktuelle Entwicklung in Bezug auf die Anzeige von Datenschutzhinweisen und Datenschutzrichtlinien.

Bitte deachten und bedenken Sie diese Hinweise vor der Nutzung eines solchen Templates. Holen Sie vor dem Einsatz auf Ihrem System fachkundigen Rat und ggf. eine juristische Einschätzung ein. Das wird Sie im Ernstfall weniger Kosten als der Aufwand, Ärger und die Kosten durch Abmahnungen, kurzfristige Templateanpassungen und ggf. Einnahmeausfall durch Offline-Zeiten.

Apache2 gelöschte Configuration neu erstellen

Um unter Linux (z.Bsp. Debian oder Ubuntu) eventuell gelöschte Konfigurationsdateien wieder herstellen zu lassen, nutzen Sie z.Bsp. folgenden Befehl:

apt-get -o DPkg::Options::="--force-confmiss" --reinstall install apache2

Alternativ können Sie Apache2 auch komplett löschen:

apt-get purge apache2

... und neu installieren:

apt-get install apache2

Linux: Prozess inkl. Unterprozessen (Children/Childs/Grandchilds) beenden ("killen")

Um unter Linux (z.Bsp. Debian Jessy) eine komplette Prozessstruktur (Prozessbaum) mit einem Befehl sofort zu beenden, hilft folgendes Syntax:

kill `pstree -l -p PID |grep "(*)" -o |tr -d '()'`

Beispiel:

Sie haben ein Backup mit der PID (Prozess ID) 12345 gefunden, welchen Sie sofort beenden möchten. Wie viele solcher Prozesse haben Backups häufig Unterprozesse (Childs) laufen, welche durch die «normalen Kill-Befehle» nicht immer automatisch mit beendet werden. Der Befehl für den Beispiel PID 12345 würde also lauten:

kill `pstree -l -p 12345 |grep "(*)" -o |tr -d '()'`

Virtualmin: Datenbank Prefix für SubServer anpassen (Domainname als Prefix)

Wenn Sie in VirtualMin einen SubServer (Unter-Server) zu einem bestehenden Server einrichten, dann wird dabei (sofern ausgewählt) auch eine mySQL Datenbank automatisch angelegt.

Dabei wird in den Standardeinstellungen nur der Prefix des neuen SubServers als Datenbankname ausgewählt:

Beispiel:
Ihre bestehende Domain (= aktueller virtueller Server):

mydomain.com

Prefix des erstellten SubServers ist "test" ... dann heißt Ihre neue mySQL Datenbank:

test

Das kann nicht nur zu ärgerlichen und nervigen Problemen führen (wenn z.Bsp. ein anderer Benutzer die gleiche Idee für seine Domain hat), sondern wird mit der Zeit auch sehr unübersichtlich. Besser ist es daher, die Domain des virtuellen Servers als Prefix für den Datenbanknamen zu verwenden.

  1. Gehen Sie dafür in die "Server Templates" in Virtualmin
  2. Wählen Sie die "Settings for Sub-Servers" aus
  3. Dort wählen Sie aus der DropDownbox den Eintrag "mySQL Database"
  4. Aktivieren Sie bei "Default database name" den Eintrag "Template"
  5. Geben Sie in das angezeigte Feld folgenden Text ein:
    ${USER}_${PREFIX}
  6. Klicken Sie auf "Save"

Wenn Sie jetzt einen neuen SubServer erstellen (sh. Beispiel oben), dann wird Ihnen folgende mySQL Datenbank angelegt:

mydomain_test

Debian 8 (jessie): "systemd-fsck" deaktivieren

Das kommt groß in Mode: Das System prüft und korrigiert was das Zeug hält und keiner fragt den Administrator (root) … der hat ja sowieso nix zu melden und keine Ahnung von seinem System !?

Seit Debian V8 (Codename «jessie») prüft das System jetzt bei JEDEM Booten mit «fsck» auf Fehler. Leider auch bei Servern mit diversen TB Platten und RAID Systemen ... und das kann dauern … richtig dauern. Ist ja nur ein Server, den braucht schon keiner im System ;o/

Um diesen Wahnsinn zu beenden, hilft folgende Einstellung:

nano /etc/default/rcS

Dort die Option «FSCKFIX» auf «no» setzen:

FSCKFIX=no

SVN: Struktur automatisch in einem Befehl anlegen

Um in einem SVN (= Versionsverwaltung) die benötigten Verzeichnisse automatisch mit einem Basis-Commit erstellen zu lassen, benutzt man folgenden Befehl:

svn mkdir --parents file:///home/customer/svn/project/{trunk,tags,branches} -m "initial dir creation"

Debian VirtualBox headless: VirtualBox Extension Pack

Wenn Sie unter Linux Debian (hier Debian jessie) ein Update der VirtualBox Software durchgeführt haben (z.Bsp. automatisch durch ein Linux Update von Debian V7 auf Debian V8), dann erhalten Sie meist Fehlermeldungen, welche Sie zur Installation des "Oracle VM VirtualBox Extension Pack" auffordern.

Wenn Sie den folgenden Installationsbefehl ausführen, ...
VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.3.18-96516.vbox-extpack
... dann erhalten Sie eine Fehlermeldung:
Extension pack 'Oracle VM VirtualBox Extension Pack' is already installed. In case of a reinstallation, please uninstall it first
Deinstallieren Sie das (alte) Extension Pack daher mit folgendem Befehl:
VBoxManage extpack uninstall 'Oracle VM VirtualBox Extension Pack'
Anschließend können Sie das aktuelle Extension Pack wieder problemlos installieren:
VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.3.18-96516.vbox-extpack

Linux: Screen Session durch PID wieder aufnehmen

Wenn Sie unter Debian, Ubuntu oder einer anderen Linux Distribution den "screen" Befehl benutzen, um eine Bash Session z.Bsp. per SSH über einen Session-Timeout hinweg zu behalten, dann können Sie diese screen-Session sehr einfach wieder aufnehmen:

Starten Sie "screen" einfach mit dem Paramter "-r" zur Wiederaufnahme:

screen -r

Wenn Sie diverse screen-Sessions (screen-Sitzungen) offen haben, dann können Sie auch eine bestimmte Session ansprechen:

Der Befehl "screen -r" liefert Ihnen dann eine Auflistung der aktiven Screens:
There are several suitable screens on:
6722.pts-2.demo      (Detached)
9263.pts-0.demo      (Detached)
Type "screen [-d] -r [pid.]tty.host" to resume one of them.
Geben Sie nun den folgenden Befehl (angepasst für Ihre gewünschte Sitzung) ein:
screen -r 9263.pts-0.demo