Zum Inhalt

Kategorie: Linux

nginx startet nicht mehr

Nach einem Reboot startete nginx auf meinem Raspberry Pi 3 nicht mehr. Es kam nur folgende Meldung:

pi@raspberrypi:/etc/nginx » sudo service nginx start
Job for nginx.service failed. See 'systemctl status nginx.service' and 'journalctl -xn' for details.

Auch der Hinweis auf systemctl status nginx.service brachte keine Erkenntnis:

pi@raspberrypi:/etc/nginx » sudo systemctl status nginx.service
? nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled)
   Active: failed (Result: signal) since Mo 2017-08-14 14:34:39 CEST; 6s ago
  Process: 17080 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=killed, signal=SEGV)

Aug 14 14:34:39 raspberrypi systemd[1]: nginx.service: control process exited, code=killed status=11
Aug 14 14:34:39 raspberrypi systemd[1]: Failed to start A high performance web server and a reverse proxy server.
Aug 14 14:34:39 raspberrypi systemd[1]: Unit nginx.service entered failed state.

Die letztendliche Lösung bestand aus dem Entfernen und der erneuten Installtion von nginx:

pi@raspberrypi:/etc/nginx » sudo apt-get remove nginx nginx-common
...
pi@raspberrypi:/etc/nginx » sudo apt-get install nginx
...

Verstanden habe ich Problem und Ursache nicht. Ich hoffe allerdings, dass das nicht die ersten Anzeichen sind, das sich die Speicherkarte im meinem Raspberry Pi ihrem Lebensende neigt.

 

Postfix Fehlermeldung: mail for domain loops back to myself

Auf meinem neuen Server (auf dem auch dieses Blog gehostet) wird, hatte ich große Schwierigkeiten, alle root eMails an mein GMX Postfach weiterzuleiten. Im Logfile /var/log/maillog tauchte immer diese Meldung auf:

Jun 28 22:02:28 srv01 postfix/smtp[21772]:
EA150101E45: to=<root@lvps12-123-123-123.dedicated.hosteurope.de>,
orig_to=<root>, relay=none, delay=0.04, delays=0.01/0.02/0/0, dsn=5.4.6,
status=bounced (mail for lvps12-123-123-123.dedicated.hosteurope.de loops back to myself)

Die Lösung bestand darin, den korrekten Hostnamen in /etc/mailname einzutragen.

SD Card Performance beim Raspberry Pi

Es gibt zwei praktische Scripte, um die Performance der SD Card im Raspberry Pi zu messen:

Leider ist die Performance meiner SD Card unterirdisch:

CONFIG:
CLOCK : 50.000 MHz
CORE : 400 MHz, turbo=
DATA : 512 MB, /root/test.dat

HDPARM:
======
Timing O_DIRECT disk reads: 64 MB in 3.03 seconds = 21.13 MB/sec
Timing O_DIRECT disk reads: 54 MB in 3.07 seconds = 17.60 MB/sec
Timing O_DIRECT disk reads: 64 MB in 3.05 seconds = 21.01 MB/sec

WRITE:
=====
512+0 Datensätze ein
512+0 Datensätze aus
536870912 Bytes (537 MB) kopiert, 106,699 s, 5,0 MB/s
512+0 Datensätze ein
512+0 Datensätze aus
536870912 Bytes (537 MB) kopiert, 102,108 s, 5,3 MB/s
512+0 Datensätze ein
512+0 Datensätze aus
536870912 Bytes (537 MB) kopiert, 96,1672 s, 5,6 MB/s

READ:
====
512+0 Datensätze ein
512+0 Datensätze aus
536870912 Bytes (537 MB) kopiert, 42,0239 s, 12,8 MB/s
512+0 Datensätze ein
512+0 Datensätze aus
536870912 Bytes (537 MB) kopiert, 40,9591 s, 13,1 MB/s
512+0 Datensätze ein
512+0 Datensätze aus
536870912 Bytes (537 MB) kopiert, 38,3425 s, 14,0 MB/s

RESULT (AVG):
============
Overlay config core_freq turbo overclock_50 WRITE READ HDPARM
400 0 50.000 MHz inf MB/s inf MB/s 19.90 MB/s

 

Raspberry Pi verschickt keine eMails

Mein Raspberry Pi verschickt eigentlich über den Mailserver dieser Domain eMails, aber von einem Tag auf den anderen Tag kamen keine eMails mehr an. Via mailq habe ich diesen Fehler entdeckt:

C6B178081D 761 Mon Aug 22 18:04:43 raspi@mydomain.de
(Host or domain name not found. Name service error for name=smtp.mydomain.de type=MX: Host not found, try again)

Die DNS Auflösung für smtp.mydomain.de hat nicht funktioniert. Der Befehl

sudo service postfix check

hat mir dann verraten, dass es Unterschiede zwischen /var/spool/postfix/etc/resolv.conf und /etc/resolv.conf gibt.

diff /var/spool/postfix/etc/resolv.conf /etc/resolv.conf

Warum Postfix eine eigene resolv.conf nutzt, weiß ich nicht. Dort habe ich dann den Inhalt aus /etc/resolv.conf eingefügt:

# Generated by resolvconf
nameserver 192.168.1.1

Und dann noch ein

sudo service postfix restart
sudo service postfix flush

und schon klappt der eMail Versand wieder.

Update vom 25.10.2016.

Diese kleine Script erledigt alles automatisch:

echo 'nameserver 192.168.1.1' | sudo tee --append /var/spool/postfix/etc/resolv.conf > /dev/null
sudo service postfix restart
sudo service postfix flush

SQLite und Java auf dem Raspberry Pi 3

Es ist nicht ganz so einfach, auf dem Raspberry Pi 3 unter Linux mit Java auf eine SQLite Datenbank zuzugreifen, musste ich feststellen. Scheinbar muss eine passende Version von libsqlitejdbc.so für ARM vorhanden sein, was nicht immer der Fall ist. Ansonsten fliegen z.B. Exceptions à la

Error loading native library: /org/sqlite/native/Linux/arm/libsqlitejdbc.so

oder

java.lang.UnsatisfiedLinkError: org.sqlite.core.NativeDB._open(Ljava/lang/String;I)V

Funktioniert hat bei mir letztendlich die Version 3.8.10.2, die es hier zum Download gibt, oder so via Dependency in der pom.xml eingebunden werden kann:

<dependency>
    <groupId>org.xerial</groupId>
    <artifactId>sqlite-jdbc</artifactId>
    <version>3.8.10.2</version>
</dependency>

Git auf dem Raspberry Pi

Seinen eigenen Git Server kann man sehr einfach mit Gogs realisieren. Die einzige Voraussetzung ist eine installierte Datenbank, z.B. MySQL oder PostgreSQL. Ich benutze z.B. letztere, die ich mit

sudo apt-get install postgresql

installiert habe. Danach dann noch schnell das Passwort mit

sudo -u postgres psql postgres
\password

ändern, und eine Datenbank anlegen

CREATE DATABASE gogs ENCODING 'UTF8';

und es kann mit Gogs losgehen. Ach ja, falls noch kein git auf dem Raspberry Pi installiert sein sollte, hilft

sudo apt-get install git

bei diese Problem.

Bei GitHub gibts für allerlei Plattformen fertige Builds, u.a. auch für Linux ARM. Diese brauchen wird.

wget https://github.com/gogits/gogs/releases/download/v0.9.13/linux_arm.zip
unzip linux_arm.zip
cd gogs
./gogs web

Dann kann via Port 3000 der Installer von Gogs aufgerufen werden, z.B. http://localhost:3000/ oder http://raspberrypi:3000/. Dieser ist selbsterklärend.

ownCloud mit curl

Dank der WebDAV Unterstützung von ownCloud ist es sehr einfach, z.B. eine Datei via curl hochzuladen:

curl -v -u benutzer:passwort /home/dennis/backup-2016-07-04.zip https://www.example.com/owncloud/remote.php/webdav/UploadFolder

Benutzer und Passwort müssen in ownCloud eingerichtet werden, das Verzeichnis sollte auch schon vorhanden sein, bevor die Datei hochgeladen wird. Ansonsten lässt sich ein Verzeichnis auch via curl mit -X MKCOL anlegen.

http auf https umleiten mit Plesk

Mit Plesk lässt sich sehr einfach der komplette http Traffic für eine Domain auf https umstellen:

  1. Login als Admin in Plesk
  2. Domain auswählen
  3. Einstellungen für Apache & nginx
  4. Zusätzliche Apache-Anweisungen

Und dort nun folgendes Eintragen:

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{HTTPS} !=on
    RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R,QSA]
</IfModule>

Testen kann man das z.B. via curl.

D:\Work>curl http://www.denniswilmsmann.de/
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>302 Found</title>
</head><body>
<h1>Found</h1>
<p>The document has moved <a href="https://www.denniswilmsmann.de/">here</a>.</p>
<hr>
<address>Apache Server at www.denniswilmsmann.de Port 80</address>
</body></html>