Copying sources and texts (also in parts) for publishing without our permission is NOT ALLOWED. We are fed up with finding our work on other sites (like stackoverflow).
Das Kopieren von Quellcode und Texten (auch in Auszügen) ist nicht erlaubt. Wir haben es gründlich satt, unsere Arbeit auf anderen Webseiten zu finden.

Copying for non-public usage is allowed.           Das private Kopieren und Benutzen ist natürlich erlaubt und erwünscht.
18. Nov
Teaser

Sicherheit: NetData Port ändern

Da (zumindest derzeit) kein im Standard vorhandener Zugangsschutz (Passwort o.ä.) in Netdata vorhanden ist, wäre eine recht einfache Lösung die Verlagerung des WebGUI Ports. Das ist natürlich keine wirkliche Sicherheit und kein Schutz, kann aber Scanner (Port-Scanner) ggf. ablenken oder zumindest die breits Masse abhalten.

Öffnen Sie die Netdata Konfiguration:

nano /etc/netdata/netdata.conf

Im Bereich “[web]” finden Sie die Einstellung “default port”. Diese ist nach der Installation auf “19999” gesetzt:

[web]
        # ses max window = 15
        # des max window = 15
        # mode = static-threaded
        # listen backlog = 4096
        # default port = 19999

Entfernen Sie das “#” Zeichen am Anfang der Zeile und ändern Sie den Wert “19999” auf Ihren gewünschten Port ab. In diesem Beispiel wird “18888” genommen:

[web]
        # ses max window = 15
        # des max window = 15
        # mode = static-threaded
        # listen backlog = 4096
        default port = 18888

Beenden und speichern Sie die Änderungen (Strg + X).

Starten Sie den NetData Service neu:

systemctl restart netdata

Öffnen Sie Ihre NetData UI im Browser mit dem neuen Port, wobei Sie bitte “domain.de” durch Ihren Servernamen oder die Server-IP ersetzen:

http://domain.de:18888

Fertig.

Erhalten Sie die Fehlermeldung, dass diese Seite nicht verfügbar ist, dann prüfen Sie bitte auch Ihre Firewalleinstellungen. Auf dem Server können Sie die aktuellen Regeln der Firewall (z.Bsp. ipTables) auflisten:

iptables -L -n

Sollte der neue Port (hier 18888) nicht freigegeben sein, können Sie dies’ mit folgendem Befehl nachholen:

iptables -A INPUT -p tcp --dport 18888 -j ACCEPT

Die Änderung/Freigabe ist sofort nach EIngabe des Befehles durchgeführt.

17. Nov
Teaser

mySQL (mariaDB) in Netdata einbinden

Wie Sie einen Netdata Service auf Ihrem Server installieren, haben wir Ihnen in unserem Beitrag “Netdata auf einem Debian Server installieren” gezeigt. In diesem Beitrag zeigen wir einen möglichen Weg, Analysedaten und Auslastungen Ihres mySQL (oder mariaDB) Servers auf der Netdata Seite anzuzeigen.

Das benötigte Python DB Modul wurde bereits installiert. Sollten Sie eine andere Installation benutzt haben, können Sie das Paket durch folgenden Befehl installieren; sollte es bereits vorhanden sein, dann erhalten Sie nur eine entsprechende Meldung:

apt-get install python-mysqldb

Erzwingen Sie den Start des mySQL Modules:

nano /etc/netdata/charts.d.conf

Fügen Sie folgende Zeile ein:

mysql=force

Speichern und beenden Sie die Datei mit “Strg + X”.

Erstellen (oder bearbeiten) Sie nun die Konfigurationsdatei für das NetData mySQL Modul:

nano /etc/netdata/mysql.conf
mysql_cmds[local]="/usr/bin/mysql"
mysql_opts[local]="-h 127.0.0.1 -uUSERNAME -pPASSWORD"

Passen Sie dabei die Werte bitte an Ihren Datenbankserver an:

USERNAME = Benutzernamen, für die NetData-Verbindung
PASSWORD = Passwort für den Benutzer “USERNAME”

Sollte Ihr mySQL Server nicht lokal (= localhost = 127.0.0.1) laufen, dann passen Sie bitte auch die IP Adresse entsprechend an. Die Verbindung wird im Beispiel “local” benannt. Sie können den Namen ändern, indem Sie beide Zeile anpassen.

Beispiel für den Benutzer “root” mit dem Passwort “hallo123”:

mysql_cmds[local]="/usr/bin/mysql"
mysql_opts[local]="-h 127.0.0.1 -uroot -phallo123"

Wenn Sie mehrere Server oder unterschiedliche Benutzer gleichzeitg überwachen lassen möchten, dann erstellen Sie in dieser Datei die passenden Einträge.

Beispiel: Nebn dem Benutzer “root” (Verbindung mit dem Namen “local”) möchten Sie auch den Benutzer “demo” mit dem Passwort “passdemo” überwachen. Dieser Eintrag soll “demo1” heißen:

mysql_cmds[local]="/usr/bin/mysql"
mysql_opts[local]="-h 127.0.0.1 -uroot -phallo123"

mysql_cmds[demo1]="/usr/bin/mysql"
mysql_opts[demo1]="-h 127.0.0.1 -udemo -ppassdemo"

Starten Sie den Netdata-Service auf Ihrem Server neu. Dadurch werden die Einstellungen neu geladen:

systemctl restart netdata

Fertig.

Wenn Sie die Einstellungen in Netdata protokollieren (debuggen) möchten, dann hilft folgender Befehl in diesem Fall recht gut. Dieser Befehl zeigt Ihnen auch Fehler (Verbindungsprobleme, fehlende Dateien, usw.) für NetData an:

/usr/libexec/netdata/plugins.d/charts.d.plugin debug 10 mysql
16. Nov
Teaser

Netdata auf einem Debian Server installieren

Sicherheitshinweis:
Bitte beachten Sie, dass (derzeit) der Netdata Port (19999) nicht per Passwort o.ä. geschützt ist. Jeder (!) kann daher auf Ihrem Server die Netdata Seite aufrufen und (wie Sie) nutzen !

Voraussetzungen installieren:

apt-get install git zlib1g-dev uuid-dev libmnl-dev pkg-config curl gcc autogen autoconf autoconf-archive make automake netcat python python-yaml nodejs lm-sensors python-psycopg2 python-mysqldb

Aktuelle Netdata Sourcen von Github kopieren:

git clone https://github.com/firehol/netdata.git --depth=1 ~/netdata

In das Verzeichnis wechseln:

cd ~/netdata

Die Netdata Installation starten:

./netdata-installer.sh

Ihnen wird eine Übersicht mit den Installationspfaden angezeigt:

  ^
  |.-.   .-.   .-.   .-.   .  netdata
  |   '-'   '-'   '-'   '-'   real-time performance monitoring, done right!
  +----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+--->


  You are about to build and install netdata to your system.

  It will be installed at these locations:

   - the daemon     at /usr/sbin/netdata
   - config files   in /etc/netdata
   - web files      in /usr/share/netdata
   - plugins        in /usr/libexec/netdata
   - cache files    in /var/cache/netdata
   - db files       in /var/lib/netdata
   - log files      in /var/log/netdata
   - pid file       at /var/run/netdata.pid
   - logrotate file at /etc/logrotate.d/netdata

  This installer allows you to change the installation path.
  Press Control-C and run the same command with --help for help.

Press ENTER to build and install netdata to your system >

Wenn Sie einverstanden sind, dann drücken Sie “Enter” … ansonsten können Sie mit “Strg+C” hier die Installtion abbrechen.

Sobald die Installation beendet ist (meist nach ca. 1-2 Minuten, je nach Serverleistung), erhalten Sie folgende Anzeige:

If you want to have version update check, please re-install it
following the procedure in:

https://github.com/netdata/netdata/wiki/Installation

 --- Check apps.plugin ---
 --- Generate netdata-uninstaller.sh ---
 --- Basic netdata instructions ---

netdata by default listens on all IPs on port 19999,
so you can access it with:

  http://this.machine.ip:19999/

To stop netdata run:

  systemctl stop netdata

To start netdata run:

  systemctl start netdata

Uninstall script generated: ./netdata-uninstaller.sh
Update script generated   : ./netdata-updater.sh

netdata-updater.sh can work from cron. It will trigger an email from cron
only if it fails (it does not print anything when it can update netdata).
Run this to automatically check and install netdata updates once per day:

sudo ln -fs /root/netdata/netdata-updater.sh /etc/cron.daily/netdata-updater

 --- We are done! ---

  ^
  |.-.   .-.   .-.   .-.   .-.   .  netdata                          .-.   .-
  |   '-'   '-'   '-'   '-'   '-'   is installed and running now!  -'   '-'
  +----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+--->

  enjoy real-time performance and health monitoring...

Ab jetzt können Sie die Oberfläche von Netdata in Ihrem Browser öffnen. Ersetzen Sie dafür im folgenden Befehl “domain.de” durch Ihren Servernamen oder Ihre Server-IP:

http://domain.de:19999

Bitte beachten Sie, dass SSL Verbindungen (derzeit) nicht bzw. nur über Umwege möglich sind. Aufrufe per “https://…” führen daher zu einer Fehlermeldung.

Folgende Befehle können Sie auch im späteren Einsatz von Netdata benötigen:

Netdata starten

systemctl start netdata

Netdata stoppen

systemctl stop netdata

Den aktuellen Netdata Status (läuft, gestoppt, ggf. Fehler) anzeigen

systemctl status netdata

Updates installieren

cd ~/netdata
git pull
./netdata-installer.sh

Netdata deinstallieren

cd ~/netdata
./netdata-uninstaller.sh --force
12. Nov
Teaser

WordPress: Die robots.txt ohne Plugin anpassen

Um den Inhalt der “robots.txt” in einem WP Blog zu verändern oder zu ersetzen, brauchen Sie nicht zwingend ein Plugin oder komplexe Ersatzstrukturen.

Im aktuellen Theme (= Layout / Design) die Datei “functions.php” finden und bearbeiten. Dort am Ende folgende Zeilen einfügen:

add_filter('robots_txt', 'addToRoboText');

function addToRoboText($robotext) {
    $additions = "User-agent: *
Allow: /";
    return $robotext . $additions;
}

In der Variablen $robotext steht der Inhalt der WordPress Installation bzw. der bisher erzeugten Zeilen.

Soll nur der eigene Text angezeigt werden, so kann diese Variable unterdrückt werden indem sie nicht zurück gegeben wird. Dazu ersetzen Sie die Zeile “return …” durch folgende Zeile:

return $additions;
28. Okt
Teaser

Postfix: Mails mit ZIP/EXE/COM Anhängen (Attachments) ablehnen

Um alle Mailkonten auf Ihrem Server vor E-Mails mit ZIP/EXE/… Anhängen zu schützen, können Sie folgende Anleitung nutzen:

Öffnen Sie die Konfigurationsdatei von Postfix auf Ihrem Server:

nano /etc/postfix/main.cf

Ergänzen Sie die Datei (bzw. die “mime_header_checks”) um folgende Zeile:

mime_header_checks = regexp:/etc/postfix/mime_header_checks

Speichern und beenden Sie die Bearbeitung (Strg+X in nano).

Öffnen Sie nun bitte die Datei “mime_header_checks”:

nano /etc/postfix/mime_header_checks

Ergänzen Sie die Datei um folgende Zeile:

/name=[^>]*\.(bat|com|exe|zip|dll|vbs)/ REJECT

Speichern und beenden Sie die Bearbeitung (Strg+X in nano).

Durch diese Zeile werden E-Mails mit Dateianhängen mit der Endung “.bat”, “.com”, “.exe”, “.zip”, “.dll”, “.vbs” automatisch vom Server abgelehnt. Der Absender erhält eine entsprechende Nachricht mit dem Fehlercode

<mail@server.tld>: host server.tld[12.34.56.78] said:
    550 5.7.1 message content rejected (in reply to end of DATA command)".

Zum Abschluß starten Sie den Postfix Service einmal neu:

/etc/init.d/postfix restart

Fertig.

14. Okt
Teaser

Shopware: Passwort zurücksetzen / vergessen

Wenn Sie Ihr Shopware Passwort vergessen/verlegt haben, dann gibt es derzeit keine Standard-Passwort-Zurücksetzen Funktion in Shopware.

Der einfachste Weg ist das Setzen eines neuen (bekannten) Passwortes in der Datenbank. Dann können Sie sich mit dem gesetzten Passwort anmeldung und wieder ein eigenes Passwort in Shopware einrichten.

1. Passwort setzen

Öffnen Sie (z.Bsp. mit phpMyAdmin) Ihre Shopware-Datenbank. Ändern Sie im folgenden SQL Befehl den Benutzernamen “john” in Ihren Benutzernamen und führen Sie dann den Befehl in der Datenbank aus:

update s_core_auth set
  password='$2y$10$av4vFeRXw8d/f5bEaV.pzu5J4nEsEiaV/mAbxskbtYhf.HfFitMzW',
  encoder='bcrypt',
  lastlogin='2018-01-01 00:00:00',
  lockeduntil='0000-00-00 00:00:00',
  failedlogins=0,
  active=1
where username = 'john';

Dieser Befehl setzt das Passwort für den Benutzer (hier “john”) auf “demo” (ohne Anführungszeichen) und korrigiert die weiteren Einstellungen. Dadurch wird z.Bsp. ein durch zuviele fehlerhafte Logins gesperrter Benutzer wieder freigegeben.

2. In Shopware anmelden

Öffnen Sie Ihr Shopware Backend und melden Sie sich mit Ihrem Benutzernamen und dem Passwort “demo” an.

3. Ändern Sie das Passwort

Dieser Schritt ist sehr wichtig, denn “demo” kann nicht wirklich als gutes und sicheres Passwort angesehen werden.

Öffnen Sie zum Ändern Ihres Passwortes in Shopware die Benutzerverwaltung (im Menü “Einstellungen”) und klicken Sie am Ende der Zeile mit Ihrem Benutzernamen auf das “Editieren” Symbol. In dem neuen Fenster geben Sie Ihr neues Passwort doppelt (!) ein (in “Passwort” und “Passwort wiederholen). Dieser Schritt ist sinnvoll, um Tippfehler zu vermeiden. Klicken Sie auf “Speichern” und geben Sie ggf. zur Bestätigung Ihr (noch) aktuelles Passwort “demo” ein.

Fertig.

07. Okt
Teaser

Shopware: Fehler bei der Erstellung von Bildern und Thumbnails

Shopware (hier Version 5.5.1) fragt leider bei der Inatallation oder einem Update (noch ?) nicht ab, ob alle benötigten PHP Erweiterungen auf dem System installiert sind. Die Folge sind dann recht nervige Fehler wie dieser:

Wenn Ihnen in Ihrem Shopware OnlineShop plötzlich Vorschaubilder (= Thumbnails) fehlen oder Bilder teilweise garnicht mehr angezeigt werden, dann kann Ihnen dieser Artikel vielleicht helfen.

Bemerkt werden kann der Fehler im Error-Log des WebServers:

tail -f logs/error_log
mod_fcgid: stderr: PHP Fatal error:  Uncaught Error: Call to undefined function Shopware\\Components\\Thumbnail\\Generator\\imagecreatefromstring() in /home/path/public_html/engine/Shopware/Components/Thumbnail/Generator/Basic.php:144, referer: https://www.website.de/backend/
mod_fcgid: stderr: Stack trace:, referer: https://www.website.de/backend/
mod_fcgid: stderr: #0 /home/path/public_html/engine/Shopware/Components/Thumbnail/Generator/Basic.php(83): Shopware\\Components\\Thumbnail\\Generator\\Basic->createImageResource('\\xFF\\xD8...', 'media/image/pag...'), referer: https://www.website.de/backend/
mod_fcgid: stderr: #1 /home/path/public_html/engine/Shopware/Components/Thumbnail/Manager.php(149): Shopware\\Components\\Thumbnail\\Generator\\Basic->createThumbnail('media/image/pag...', '/media/image/th...', '800', '800', true, 90), referer: https://www.website.de/backend/
mod_fcgid: stderr: #2 /home/path/public_html/engine/Shopware/Controllers/Backend/MediaManager.php(458): Shopware\\Components\\Thumbnail\\Manager->createMediaThumbnail(Object(Shopware\\Models\\Media\\Media), Array, true), referer: https://www.website.de/backend/
mod_fcgid: stderr: #3 /home/path/public_html/engine/Library/Enlight/Controller/Action.php(193): Shopware_Controllers_Backend_MediaManager->upl in /home/path/public_html/engine/Shopware/Components/Thumbnail/Generator/Basic.php on line 144, referer: https://www.website.de/backend/

Also gab es einen Fehler beim Aufruf der Funktion “imagecreatefromstring”, welche ein Bestandteil des Paketes “GD” ist. Dieses kann einfach installiert werden und stellt dem System diverse Bildbearbeitungsfunktionen zur Verfügung (bitte ersetzen Sie ggf. die PHP Version durch Ihre genutzte Version: php5.6 oder php7.0 oder php7.2 …):

apt-get install php7.1-gd

Anschließend den kurzen Neustart des Webservers nicht vergessen, damit PHP das neue Paket erkennt und automatisch lädt:

/etc/init.d/apache2 restart

Ab jetzt werden die Bilder beim Hochladen in den Shop automatisch erstellt und angezeigt.

29. Sep
Teaser

Shopware: Plugins werden nicht installiert (z.Bsp. PayPal)

Wenn Sie in Shopware (hier Version 5.5.1) nach einer fehlerfreien Installation keine Plugins (z.Bsp. PayPal) installieren können, dann wird Ihrem Server die PHP Erweiterung für die Verarbeitung von ZIP Dateien fehlen. Hier ein Auszug aus dem Fehlerbericht:

mod_fcgid: stderr: PHP Fatal error:  Uncaught Error: Class 'ZipArchive' not found in /home/path/public_html/engine/Shopware/Bundle/PluginInstallerBundle/Service/ZipUtils.php:41
mod_fcgid: stderr: Stack trace:
mod_fcgid: stderr: #0 /home/path/public_html/engine/Shopware/Bundle/PluginInstallerBundle/Service/DownloadService.php(100): Shopware\\Bundle\\PluginInstallerBundle\\Service\\ZipUtils::openZip('/home/path/...')
mod_fcgid: stderr: #1 /home/path/public_html/engine/Shopware/Plugins/Default/Backend/PluginManager/Controllers/Backend/PluginManager.php(147): Shopware\\Bundle\\PluginInstallerBundle\\Service\\DownloadService->extractPluginZip('/home/path/...', 'SwagPaymentPayP...')
mod_fcgid: stderr: #2 /home/path/public_html/engine/Library/Enlight/Controller/Action.php(193): Shopware_Controllers_Backend_PluginManager->extractAction()
mod_fcgid: stderr: #3 /home/path/public_html/engine/Library/Enlight/Controller/Dispatcher/Default.php(549): Enlight_Controller_Action->dispatch('extractAction')
mod_fcgid: stderr: #4 /home/path/public_html/engine/Library/Enlight/Controller/Front.php(222): Enlight_Con in /home/path/public_html/engine/Shopware/Bundle/PluginInstallerBundle/Service/ZipUtils.php on line 41

Die Lösung in diesem Fall ist die Installation des benötigten PHP Pakets/Erweiterung (ggf. die PHP Version anpassen: php5.6, php7.0, php7.2, …):

apt-get install php7.1-zip

Danach bitte den Neustart des Webservers nicht vergessen:

/etc/init.d/apache2 restart
19. Sep
Teaser

Chrome: Abgerundete Tabs etc. deaktivieren / abschalten

Chrome hat von Zeit zu Zeit die Angewohnheit, das Layout (auch “UI”) beim Start einfach mal so mit abgerundeten Ecken darzustellen. Wem das auch garnicht gefällt, der kann diese Einstellung einfach aufheben.

In Chrome in die URL Zeile folgende Adresse eingeben:

chrome://flags/#top-chrome-md

Dort den ersten Eintrag “UI Layout for the browser’s top chrome” auf “Normal” stellen und unten rechts auf “Relaunch now” klicken. Fertig.

12. Sep
Teaser

Docker Fehler: Version in “./docker-compose.yml” is unsupported.

Wenn beim Ausführen des Befehles

docker-compose up

die folgende Fehlermeldung angezeigt wird, …

ERROR: Version in "./docker-compose.yml" is unsupported. You might be seeing this error because you're using the wrong Compose file version. Either specify a version of "2" (or "2.0") and place your service definitions under the `services` key, or omit the `version` key and place your service definitions at the root of the file to use version 1.

… dann können Sie von einem Fehler (Bug) in der Software von docker-composer betroffen sein. Durch den Fehler wird das Format (Version 3.1) nicht als richtig anerkannt.

Prüfen Sie, welche Version auf Ihrem System installiert ist:

docker-compose --version
docker-compose version 1.8.0, build unknown

Installieren Sie eine aktuelle Version von docker-compose. Finden und löschen Sie dafür die aktuelle Version:

which docker-compose
/usr/bin/docker-compose
rm /usr/bin/docker-compose

Laden Sie die für Ihr System passende Version neu herunter …

curl -L https://github.com/docker/compose/releases/download/1.20.0/docker-compose-`uname -s`-`uname -m` -o /usr/bin/docker-compose

… und erlauben Sie die Ausführung:

chmod +x /usr/bin/docker-compose

Überprüfen Sie die Version:

docker-compose --version
docker-compose version 1.20.0, build ca8d3c6

Jetzt sollte docker-compose die Datei verarbeiten können.