Benutzer-Werkzeuge

Webseiten-Werkzeuge


rpiserver

Server


Raspberry Pi als Terminalserver

v 1.00

Voraussetzung ist ein funktionierend aufgesetzter RPi und ser2net . Für den Anschluss an die Firewall (in meinem Fall eine Cisco ASA 5505) wird ein USB nach Seriell Adapter von LogiLink (AU0048) verwendet, da er von Linux unterstützt wird. Falls mehrere Geräte angeschlossen werden sollen, kann auch beispielsweise der KÖNIG USB nach 4x Seriell Adapter verwendet werden. Die Installation ist gleich, lediglich die /etc/ser2net.conf ist anzupassen.

ser2net ermöglicht den Zugriff auf serielle Ports über TCP, wodurch der Pi zu einem Terminalserver wird. Die ser2net befindet sich in den Repositorys. Die ser2net wird heruntergeladen und kompiliert. Nachsehen, ob es eventuell eine neuere Version gibt.

sudo wget http://downloads.sourceforge.net/project/ser2net/ser2net/ser2net-3.5.tar.gz

Tarball extrahieren:

sudo tar -xzvf ser2net-3.5.tar.gz

und installieren:

cd ser2net-3.5/
./configure
make
sudo make install

Nach dem Installierendie Überbleibsel löschen:

make clean

Bevor die ser2net.conf editiert werden kann, muss nachgesehen werden, welchen Port, bzw. welche Ports bei Mehrfachkabel, verwendet wird oder werden. Das folgende Kommando verwenden:

$ dmesg | grep tty

[    0.000000] Kernel command line: 8250.nr_uarts=0 bcm2708_fb.fbwidth=1280 bcm2708_fb.fbheight=1024 bcm2708_fb.fbswap=1 vc_mem.mem_base=0x3ec00000 vc_mem.mem_size=0x40000000  dwc_otg.lpm_enable=0 console=ttyS0,115200 console=tty1 root=PARTUUID=d112e6c0-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
[    0.000814] console [tty1] enabled
[    1.028899] 3f201000.serial: ttyAMA0 at MMIO 0x3f201000 (irq = 87, base_baud = 0) is a PL011 rev2
[ 4411.906281] usb 1-1.2: pl2303 converter now attached to ttyUSB0

Hier ist der Anschluss mit ttyUSB0 verbunden. Nun kann die ser2net.conf editiert, bzw. erstellt werden:

sudo nano /etc/ser2net.conf

Die folgenden zwei Zeilen einfügen:

BANNER:banner:Terminal Server TCP port 4001 CISCO ASA

4001:telnet:0:/dev/ttyUSB0:9600 8DATABITS NONE 1STOPBIT banner

Die erste Zeile zeigt ein Banner bei der Verbindung auf das angeschlossene Gerrät. Es wird nicht unbedingt benötigt, ist aber bei der Administration von mehreren Geräten hilfreich.
Die zweite Zeile beschreibt den TCP Port 4001 und die Verbindung zum Anschluss /dev/ttyUSB0. Die Baud rate von 9600, 8 databits, no parity and 1 stopbit wird vom Endgerät erwartet. Je nach angeschlossenem Gerät ist das anzupassen.

Am Raspberry ser2net starten:

ser2net -n

Nun kann eine Verbindung von einem am Netzwerk angeschlossenen Computer erfolgen.
Hier wird das Programm Putty verwendet.

Putty Telnet

Terminal Fenster

Start von ser2net beim booten des RPi:

$ sudo nano /etc/rc.local

In der letzten Zeile von /etc/rc.local steht der Eintrag exit 0. Vor diesem Eintrag die folgende Zeile einfügen:

/usr/local/sbin/ser2net -n

Beim nächsten Start wird der RPi ser2net automatisch starten. Nun ist der RPi als Terminalserver verwendbar.

Die Logging-Funktion von ser2net konfigurieren

Bevor das Logging konfiguriert wird, sollte die Uhrzeit auf die lokale Zeit eingestellt werden, da ein Zeitstempel in die Logfiles eingetragen wird. Die Zeitzone wird, wenn nicht schon geschehen, auf die mitteleuropäische Zeitzone (CEST - Central European Time) eingestellt.

$ sudo cp /usr/share/zoneinfo/Europe/Amsterdam /etc/localtime

Kontrollieren der Einstellung:

$ date
Fre Nov 16 01:23:51 CET 2018

Nun wird ein Ordner erstellt, in den die Log-Files geschrieben werden:

$ sudo mkdir /var/log/ser2net

Nun muss die /etc/ser2net.conf um die Zeile TRACEFILE:trace1:/var/log/ser2net/ser2net.log und den Eintrag
tr=trace1 timestamp ergänzt werden:

BANNER:banner:Terminal Server TCP port 4001 CISCO ASA

TRACEFILE:trace1:/var/log/ser2net/ser2net.log

4001:telnet:0:/dev/ttyUSB0:9600 8DATABITS NONE 1STOPBIT banner tr=trace1 timestamp

Dieser Zusatz erzeugt einen Eintrag mit Portnummer und Zeitstempel im Logfile. Das Verzeichnis    /var/log/ser2net/ muss über die nötigen Rechte verfügen. Im einfachsten Fall:

sudo chmod -R 644 /var/log/ser2net

Es wird dabei jeder Tastendruck protokolliert. Eventuell die Einstellungen ändern.


Raspberry Pi als Webserver

V 1.00

Voraussetzung ist ein lauffähiges System. In diesem Beispiel wird raspbian-stretch-lite, Version 2018-10-09 verwendet.

Paketlisten aktualisieren

sudo apt-get update -y
sudo apt-get upgrade -y


Apache2 installieren

sudo apt-get install apache2 -y

Das -y am Ende der Zeile bedeutet, dass die Installation nicht auf eine Eingabe wartet. Aufforderungen durch das Programm werden automatisch mit Yes beantwortet.
Wenn nun im Browser die IP-Adresse eingegeben wird, erscheint die Seite
Apache2 Debian Default Page - It works!


MySQL/MariaDB installieren

Bei MySQL handelt es sich um eine SQL-Datenbank. Content Management Systeme (CMS) wie z.B WordPress oder Typo arbeiten mit einer SQL-Datenbank.

Um MySQL zu installieren, folgenden Befehl eingeben:

sudo apt-get install mysql-server mysql-client -y

Nach der Installation von MySQL muss die Konfiguration ausgeführt werden:

sudo mysql_secure_installation


Da bisher noch kein Passwort vergeben ist, mit Enter bestätigen. Danach sind noch folgende Fragen zu beantworten:

sudo mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on...


Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!
  • Set root password? [Y/n]

hier mit y + Enter um ein neues Passwort zu setzten.

  • Remove anonymous users? [Y/n]

hier entfernen wir die Anonymen User mit y + Enter

  • Disallow root login remotely? [Y/n]

diese Frage beantworten wir mit n + Enter

  • Remove test database and access to it? [Y/n]

diese Frage beantworten auch wir mit n + Enter

  • Reload privilege tables now? [Y/n]

diese Frage beantworten wir mit y + Enter, damit meine Änderungen direkt aktiv werden.



PHP installieren

PHP ist eine Skriptsprache die hauptsächlich zur Erstellung von dynamischen Webseiten und Webanwendungen benutzt wird.

Mit folgendem Befehl wird PHP in der Version 7 installiert:

sudo apt-get install php php-mysql -y

Um nun zu prüfen ob die PHP Installation erfolgreich war und um die PHP Informationen anzeigen zu lassen, im Verzeichnis /var/www/html/ eine neue Datei erstellen und mit dem Namen „phpinfo.php“ erstellen:

sudo nano /var/www/html/phpinfo.php

Der Inhalt der Datei phpinfo.php:

<?php
 phpinfo();
?>

Die Datei mit Strg+o speichern und mit Strg+x beenden.

Um sich die PHP Informationen anzeigen zu lassen, die IP-Adresse/phpinfo.php/ des Pi in den Browser eingeben.

Der Aufruf erzeugt folgende Anzeige:



phpMyAdmin installieren

Zur einfacheren Verwaltung der MySQL Datenbank sollte jetzt noch phpMyAdmin installiert werden. Mit dem Tool können einzelne Datenbanken angelegt und Werte in bestimmte Zellen der Datenbank geschrieben werden. Somit ein komfortables Administrations Tool für Datenbanken.

Die Installation wird mit folgendem Befehl gestartet:

sudo apt-get install phpmyadmin -y

Während der Installation werden einige Fragen gestellt. phpMyAdmin soll für den Apache2 Webserver konfiguriert werden. Somit wird der * wird mit der Leertaste gesetzt, dann mit dem Tabulator auf OK und mit Enter bestätigen.

Auch die nächste Frage wird mit Ja beantwortet.

Jetzt wird man aufgefordert ein Passwort zu vergeben. Hier sollte das gleiche Passwort wie bei der MySQL Installation benutzt werden.

Als nächstes muss phpMyAdmin konfiguriert werden. Die Konfiguration startet Ihr mit folgendem Befehl:

sudo dpkg-reconfigure phpmyadmin

Die Frage, ob phpMyAdmin neu installiert werden soll, mit Ja beantworten.

Die nächsten Fragen wie in der folgenden Beschreibung beantworten:

  • TCP/IP
  • localhost
  • 3306
  • phpmyadmin
  • root@localhost
  • Passwort
  • Passwort
  • root
  • apache2

Das ganze endet beim ersten mal mit einem Fehler, hier muss der Schritt noch einmal mit den gleichen Einstellungen wiederholt werden „Wiederholen (Fragen überspringen)“.

Danach läuft alles erfolgreich durch. Jetzt ist es möglich auf phpMyAdmin zuzugreifen und sich einzuloggen.
IP-Adresse/phpmyadmin/ in den Browser eingeben.

Benutzername: root
Passwort: Das eben vergebene Passwort

FTP einrichten

Um komfortabel die Dateien auf den Webserver zu transferieren muss im letzten Schritt der Installation ein FTP Programm (File Transfer Protokoll) auf dem Webserver installiert und konfiguriert werden. Nach der Installation können Dateien bequem mit einem FTP Programm (z.B. FileZilla) auf den Webserver kopiert werden. Das Programm wird mit folgendem Befehl installiert:

sudo apt-get install proftpd -y

Wenn die Installation durchgelaufen ist, muss im nächsten Schritt ein User eingerichtet werden. Es wird ein virtueller User angelegt, welcher nur über FTP Dateien hochladen darf und keine weiteren Rechte besitzt. Um den User anzulegen, muss die Konfigurationsdatei von proftpd erweitert werden. Das geschieht mit dem Befehl:

sudo nano /etc/proftpd/proftpd.conf

Dann wird folgender Code am Ende des bereits vorhandenen Codes eingefügt.

DefaultRoot ~
AuthOrder mod_auth_file.c mod_auth_unix.c
AuthUserFile /etc/proftpd/ftpd.passwd
AuthPAM off
RequireValidShell off

Jetzt muss die Datei noch mit Strg+o/Strg+x abgespeichert werden. Danach in das Verzeichnis proftpd wechseln:

cd /etc/proftpd/

und mit folgendem Befehl einen neuen Benutzer anlegen. Für Benutzername den gewünschten Benutzernamen verwenden.

sudo ftpasswd --passwd --name Benutzername --uid 33 --gid 33 --home /var/www/ --shell /bin/false

User ID 33 ist die ID des „www-data“ Users, also keine andere ID eintragen. Jetzt müssen dem User noch die Dateirechte vergeben werden. Dazu die folgenden 3 Befehle eingeben:

sudo chmod g+s /var/www
sudo chmod 775 /var/www
sudo chown -R www-data:www-data /var/www

Der Raspberry Pi als Webserver ist jetzt fertig eingerichtet und muss neu gestartet werden. Dazu folgenden Befehl eingeben:

sudo reboot

http://techgeeks.de/raspberry-pi-als-webserver-mit-wordpress/


Raspberry als Dokuwiki-Server

V 1.02

Voraussetzung ist ein lauffähiges System mit SSH Zugang.
In diesem Beispiel wird raspbian-stretch-lite, Version 2018-11-13 verwendet. Da hier eine längere Installation durchgeführt wird, sollte ein   dist-upgrade   durchgeführt werden. Starten, und dann auf einen Kaffee oder so gehen.

Paketlisten aktualisieren

sudo apt-get update -y && sudo apt-get dist-upgrade -y && sudo apt-get autoremove -y


Fixe IP-Adresse

Der Raspberry Pi bekommt eine fixe IP-Adresse, hier 192.168.20.210. Hierfür öffnen wir die dhcpcd.conf:

sudo nano /etc/dhcpcd.conf

und fügen an das Ende der Datei folgendes ein:

# Eigenes Netzwerk
interface eth0
static ip_address=192.168.20.210/24
static routers=192.168.20.20
static domain_name_servers=192.168.20.20

Die dhcpcd.conf speichern und den Pi rebooten:

sudo reboot

USB Festplatte am Raspberry installieren

Um größere Datenmengen unterzubringen, ist es notwendig, einen Datenträger zu installieren.
Nachdem die Festplatte am USB-Port angeschlossen wurde, müssen wir prüfen, ob sie gefunden wurde.

1. Festplatte erkennen

An der Konsole folgenden Befehl absetzen:

dmesg

damit wird die Festplatte identifiziert. In diesem Fall ist es   /dev/sda1  

Siehe dritte Zeile von unten.

2. Partition erstellen

sudo fdisk /dev/sda

In weiterer Folge nachstehendes am fdisk-Prompt eingeben:

Command (m for help):

n – um eine neue Partition zu erstellen
p – für eine primäre Partition
1 – für die erste Partition
dann 2 x die vorgeschlagenen Werte übernehmen

Command (m for help):

w – um die Änderungen aud die Disk zu schreiben.

3. Festplatte formatieren:

sudo mkfs.ext4 /dev/sda1

4. Festplatte mounten:

sudo mkdir /mnt/ssd
sudo mount /dev/sda1 /mnt/ssd

Nun wurde im Ordner /mnt/ das Verzeichnis /usbdisk/ erstellt und die Festplatte in diesem Ordner gemountet.

Mit der Eingabe von:

df -l -h

können wir kontrollieren, ob die neue Platte gefunden wird.

 Dateisystem    Größe Benutzt Verf. Verw% Eingehängt auf	
 /dev/root        29G    4,0G   24G   15% /	
 devtmpfs        459M       0  459M    0% /dev	
 tmpfs           463M       0  463M    0% /dev/shm	
 tmpfs           463M    6,4M  457M    2% /run	
 tmpfs           5,0M    4,0K  5,0M    1% /run/lock	
 tmpfs           463M       0  463M    0% /sys/fs/cgroup	
>/dev/sda1       118G     60M  112G    1% /mnt/ssd	
 /dev/mmcblk0p1   63M     21M   42M   33% /boot	
 tmpfs            93M       0   93M    0% /run/user/1000	
	

Siehe 3. Zeile von unten

5. Automatisch beim Booten mounten

UUID feststellen:

sudo ls -l /dev/disk/by-uuid/
	
insgesamt 0	
lrwxrwxrwx 1 root root 15 Feb 10 23:27 0EDC-9EC5 -> ../../mmcblk0p1	
lrwxrwxrwx 1 root root  9 Feb 10 23:27 7d4bd715-1158-4a82-a235-b100038fb4b6 -> ../../sda	
lrwxrwxrwx 1 root root 15 Feb 10 23:27 7f593562-9f68-4bb9-a7c9-2b70ad620873 -> ../../mmcblk0p2	
lrwxrwxrwx 1 root root 10 Feb 10 23:27 f9b3a36b-64d2-412c-8218-0fc2d083dd8e -> ../../sda1	
	
sudo nano /etc/fstab

Für unsere Festplatte folgende Zeile einfügen:
  UUID=f9b3a36b-64d2-412c-8218-0fc2d083dd8e /mnt/ssd ext4 defaults 0 0  

Danach Rechte vergeben, dass alle auf die Disk schreiben können. Falls Bedenken bestehen, dass unberechtigte zugriff haben, die Rechte entsprechend ändern:

sudo chmod 777 /mnt/ssd/

Den Pi rebooten und kontrollieren, ob die Festplatte gefunden wird.

sudo reboot



Apache, MySQL, PHP, phpMyAdmin und FTP einrichten

Die Installation der Webserver-Umgebung ist unter Raspberry Pi als Webserver beschrieben.


DocumentRoot von Apache auf /ssd legen

Verzeichnisse anlegen:

mkdir /mnt/ssd/www
mkdir /mnt/ssd/www/html

Das DocumentRoot ist in der Konfigurationsdatei 000-default.conf im Ordner /etc/apache2/sites-available. In dieser Datei wird der Eintrag DocumentRoot /var/www/html geändert in DocumentRoot /mnt/ssd/www/html:

cd /etc/apache2/sites-available
$ sudo nano 000-default.conf
	ServerAdmin webmaster@localhost	
# 	DocumentRoot /var/www/html	
	DocumentRoot /mnt/ssd/www/html	

Des weiteren ist die apache2.conf zu ändern:

sudo nano /etc/apache2/apache2.conf

den folgenden Eintrag kopieren:

<Directory /var/www/>	
       Options Indexes FollowSymLinks	
       AllowOverride None	
       Require all granted	
</Directory>	

unterhalb einfügen und dann den DirectoryPfad ändern:

<Directory /mnt/ssd/www/>	
       Options Indexes FollowSymLinks	
       AllowOverride None	
       Require all granted	
</Directory>

und anschließend Apache neu starten:

sudo service apache2 restart

Dokuwiki Server Installieren

Dokuwiki Sourcen aus dem Repository holen

Mit wget das Installationspaket von Dokuwiki ins Verzeichnis /var/www holen :

cd /mnt/ssd/www
sudo wget http://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz

Unter Raspbian liegt das Webverzeichnis von Apache unter /var/www/html. Wir entpacken es daher mit:

sudo tar xzvf dokuwiki-stable.tgz -C /var/www/html/

in das Verzeichnis /var/www/html/.

cd html

Das hier entstandene Verzeichnis mit der aktuellen Versionsangabe benennen wir mit:

sudo mv /var/www/html/dokuwiki-2018-04-22b /mnt/ssd/www/html/dokuwiki

nach dokuwiki um und setzen die entsprechenden Rechte für Apache:

sudo chown -R www-data:www-data /mnt/ssd/www/html/dokuwiki/
cd dokuwiki

Wenn die Installation korrekt verlaufen ist, dann ist das Dokuwiki betriebsbereit. Die weitere Einrichtung folgt nun im Browser:

http://192.168.20.210/dokuwiki/install.php?l=de

Diese Seite hilft bei der Erstinstallation und Konfiguration von DokuWiki. Entsprechende Eingaben vornehmen.

Dokupedia Installation

Zusätzliche Informationen zu diesem Installationsskript findet man auf der entsprechenden Hilfe Seite.

http://dokuwiki.org/installer

Nach der Erstinstallation wird Dokuwiki im Browser aufgerufen:

http://192.168.20.210/dokuwiki/doku.php?id=wiki:welcome

Auf dieser Seite ist bereits der Name von Dokuwiki zu sehen, und man kann sich bereits als Administrator anmelden.

Der Pfad, in dem das Logo gespeichert ist, lautet:

IP-Adresse-des-Wiki/dokuwiki/lib/tpl/dokuwiki/images/logo.png

Das originale Logo löschen oder umbenennen und das Eigene einfügen. Die Auflösung des Logo ist 64 x 64 Pixel.


Eigenes Favicon

Das favicon.ico ist eine Grafik, welche im Browser und bei Lesezeichen angezeigt wird.

Die in DokuWiki verwendete Standardeinstellung des favicon.ico enthält 8-Bit-PNG-Bilder mit den Abmessungen 16x16px, 32x32px und 48x48px.

DokuWiki verwendet favicon.ico aus dem Verzeichnis /Dokuwiki/lib/tpl/images, um das für Opensearch verwendete Bild zu generieren.

Benutzerdefinierte Favicons
Wenn Sie das standardmäßige DokuWiki-favicon.ico durch eine eigene Grafik ersetzen möchten, können Sie es an einer der folgenden Stellen platzieren:

  • dem Web Root (/www)
  • im Root des DokuWiki-Verzeichnisses
  • in DokuWiki/data/media
  • in DokuWiki/lib/tpl/dokuwiki/images

Standardmäßig hat DokuWiki eine Datei favicon.ico in DokuWiki/lib/tpl/dokuwiki/images.


Erste Seite

Nachdem man sich als Administrator angemeldet hat, auf sidebar und Seite erstellen klicken.
Im Editor einen Menüpunkt eingeben z.B. Adresse.
Eintrag markieren und auf das Icon Listenpunkt [.] klicken (zweite Zeile).
Nochmal den Eintrag (ohne den Stern) markieren, und auf das Icon Externer Link klicken (dritte Zeile).
Falls ein Alias gewünscht wird, nach den Klammern Alias eingeben und das Pipe Zeichen (|) einfügen. Dann wird der Alias-Name als Seitenname verwendet und der Eintrag als Menüpunkt.

Sidebar Eingabe
Sidebar Eingabe

Das ergibt die Ausgabe: Sidebar Ausgabe

Die ersten beiden Einträge haben keinen Link hinterlegt, der dritte Eintrag hat den Link Adresse hinterlegt und der vierte Eintrag den Link adr. Siehe Bild Sidebar Eingabe.


Plugin's installieren

1. Plugin für geschütztes Leerzeichen

Das ursprünglich verwendete Plugin:nbsp wird nun nicht mehr verwendet, da es im laufenden Betrieb zu unerklärlichen Fehlern gekommen ist. Stattdessen wird eine Datei zur Umwandlung von \   in ein geschütztes Leerzeichen angelegt.

Details zur Umwandlung sind in der Datei conf/entities.conf festgehalten. Um das Überschreiben von Änderungen bei Updates von DokuWiki zu verhindern, wird die Datei conf/entities.local.conf erstellt, um benutzerdefinierte Ersetzungen festzulegen.

Durch das Ausführen der folgenden sechs Befehle wird diese Datei angelegt. Falls eine andere Verzeichnisstruktur vorliegt, entsprechend anpassen.

sudo touch /mnt/ssd/www/html/dokuwiki/conf/entities.local.conf
sudo chmod 666 /mnt/ssd/www/html/dokuwiki/conf/entities.local.conf
sudo echo '# geschütztes Leerzeichen (\ )' >> /mnt/ssd/www/html/dokuwiki/conf/entities.local.conf
sudo echo $'\x5c'$'\x20'$'\x09'$'\xc2'$'\xa0' >> /mnt/ssd/www/html/dokuwiki/conf/entities.local.conf
sudo chmod 644 /mnt/ssd/www/html/dokuwiki/conf/entities.local.conf
sudo chown www-data:www-data /mnt/ssd/www/html/dokuwiki/conf/entities.local.conf

Damit kann man nun ein geschütztes Leerzeichen - Backslash gefolgt von einem Leerzeichen \   - im Editor eingeben.



2. Color Plugin

In den Admin-Bereich wechseln:

Wechsel in den Adminbereich

Anschließend in den Bereich Erweiterungen verwalten gehen:
Erweiterungen verwalten

  Suchen und Installieren   auswählen, nach color suchen und im Eintrag color syntax plugin von Harald Hanche-Olsen den Button Installieren drücken, und den Anweisungen folgen.


Oberhalb der Tab's erscheint bei erfolgreicher Installation Meldung.


Die nächsten Plugin's werden analog zu der vorigen Installation im Programmteil Erweiterungen Verwalten eingefügt.
In der Grundinstallation werden hier folgende, weitere Plugins, verwendet:

Plugin: odt - Exportiert eine Seite im Open Document Format (Libre-/Open Office)
Bei der Erstellung von Seiten ist zu beachten, dass die Exportfunktionen kein HTML exportieren können!

Plugin:dw2pdf - Exportiert eine Seite im PDF Format Siehe hier

Plugin:backup - Führt ein Backup der Daten eines DokuWiki-Servers durch. Siehe hier


Update des Dokuwiki-Servers

Da bei einem Update von Plugins nicht kontrolliert wird, ob die neueren Plugins mit der eingesetzten Version von Dokuwiki noch funktionieren, ist es manchmal erforderlich, die Version von Dokuwiki zu aktualisieren. Es gibt sicher andere Möglichkeiten, ein Update durchzuführen. Die hier beschriebene ist getestet und funktioniert problemlos.

Backup der Daten des laufenden Systems
Sicherheitshalber wird ein Backup des gesamten Servers durchgeführt.

cp -a /mnt/ssd/www/html/dokuwiki /mnt/ssd/www/html/dokuwiki_bkp

Mit dieser Eingabe wird das gesamte Verzeichnis /dokuwiki in das Verzeichnis /dokuwiki_bkp, mit allen Dateiattributen, kopiert.

Löschen des Originalverzeichnisses
Nachdem kontrolliert wurde, ob das Backup ordnungsgemäß angelegt wurde, wichtig sind vor allem das /data Verzeichnis und Teile des /conf Verzeichnisses, kann das Serververzeichnis gelöscht werden.

rm -r /mnt/ssd/www/html/dokuwiki

Wiki nach Anleitung neu installieren

Zurückkopieren der Daten

cp -a  /mnt/ssd/www/html/dokuwiki_bkp/data/ /mnt/ssd/www/html/dokuwiki/

Zurückkopieren der Einstellungen
Alle Dateien die local im Namen Tragen. Das sind in diesem Fall

cp -a  /mnt/ssd/www/html/dokuwiki_bkp/conf/entities.local.conf /mnt/ssd/www/html/dokuwiki/conf
cp -a  /mnt/ssd/www/html/dokuwiki_bkp/conf/local.php /mnt/ssd/www/html/dokuwiki/conf
cp -a  /mnt/ssd/www/html/dokuwiki_bkp/conf/local.php.dist /mnt/ssd/www/html/dokuwiki/conf
cp -a  /mnt/ssd/www/html/dokuwiki_bkp/conf/plugins.local.php /mnt/ssd/www/html/dokuwiki/conf

und die beiden Dateien

cp -a  /mnt/ssd/www/html/dokuwiki_bkp/conf/acl.auth.php /mnt/ssd/www/html/dokuwiki/conf
cp -a  /mnt/ssd/www/html/dokuwiki_bkp/conf/users.auth.php /mnt/ssd/www/html/dokuwiki/conf


Die install.php löschen

rm /mnt/ssd/www/html/dokuwiki/install.php

Falls verwendet, .htaccess & .htpassword in die neue Installation kopieren.

Template und Plugins neu installieren, um auch hier auf dem neuesten Stand zu sein.

Sonstige Anpassungen im neuen Wiki nachziehen

Falls vorhanden, eigenes Logo kopieren.

cp -a  /mnt/ssd/www/html/dokuwiki_bkp/lib/tpl/dokuwiki/images/logo.png /mnt/ssd/www/html/dokuwiki/lib/tpl/dokuwiki/images

}

Tips und Tricks

Medien in neuem Tab öffnen

Konfigurationsmanager starten (Admin/Konfiguration). Im Konfigurationsteil Links bei den gewünschten Targets _blank eintragen

Admin/Konfiguration/Links

Akronym einfügen

Ein Akronym bedeeutet bei Dokuwiki, dass eine eingetragene Abkürzung wie HTML oder DNS beim Kontakt mit dem Mauszeiger erklärt werden.
Falls eigene Erweiterungen gewünscht sind, so können diese in der Datei

/dokuwiki/conf/acronyms.conf 

eingetragen werden.

Eigene Smileys

Eigene Smileys :-D oder einfache Grafiken wie FIXME oder DELETEME können in der Datei

/dokuwiki/conf/smileys.conf 

definiert, und die Grafiken dazu im Verzeichnis

/dokuwiki/lib/images/smileys/

abgelegt werden. Die Smileys haben eine Auflösung von 15 x 15 Pixel, die Grafiken 80 x 15 Pixel. Andere Größen bitte ausprobieren.


Quellenverzeichnis

SMS Server

V 0.01

Beschreibung

Mit dem Raspberry Pi sollen SMS versendet und empfangen werden. Es ist zwar leicht, mit dem Raspberry eMails zu versenden. Bei einem Stromausfall, oder wenn kein Netzwerk zur Verfügung steht, ist das alte Short Message Service ein gutes Werkzeug um Daten zu versenden. Eine 5V Versorgung, sei es durch ein Netzgerät, eine Pufferbatterie oder eine Solaranlage, reicht.

Bei entsprechender Programmierung kann der Versand einer SMS durch eine Aktion wie Pumpenausfall, Temperatur oder einem sonstigen Alarm ausgelöst werden. Durch den Empfang einer SMS am Raspberry können Schaltvorgänge ausgelöst werden.

Benötigte Hardware

Neben einem funktionsbereiten Raspberry wird noch ein Modem-Stick benötigt. Als Modem-Stick wird ein ZTE HSDPA USB Modem, Modell MF626, verwendet. Dieses ist beim Diskonter HOFER zu haben.
Eine Liste der mit der Software „Gammu“ verwendbaren Modems und Telefone ist auf der WEB-Seite von Wammu einzusehen.
Falls ein SMS-Modem zu viel Strom benötigt, dann ist ein Hub mit eigener Stromversorgung notwendig.

Sobald der Stick am USB-Port angesteckt ist, sollte er vom RPi erkannt werden. Mit dem Befehl lsusb kann das überprüft werden:

$ lsusb

Hier sieht die Ausgabe dann folgendermaßen aus:

pi@test:~ $ lsusb
Bus 001 Device 006: ID 19d2:0031 ZTE WCDMA Technologies MSM MF110/MF627/MF636
Bus 001 Device 004: ID 0424:7800 Standard Microsystems Corp.
Bus 001 Device 003: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub
Bus 001 Device 002: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
pi@test:~ $

In der ersten Zeile kann man sehen, dass das System den ZTE-UMTS Stick erkannt hat.
Der Stick besitzt einen MicroSD Steckplatz und drei serielle Ports. Darauf wird später eingegangen. Die seriellen Ports können im Verzeichnis /dev angezeigt werden:

pi@test:~ $ ls -l /dev/serial/by-id/
insgesamt 0
lrwxrwxrwx 1 root root 13 Dez 26 11:35 usb-ZTE_Incorporated_ZTE_CDMA_Technologies_MSM-if00-port0 -> ../../ttyUSB0
lrwxrwxrwx 1 root root 13 Dez 26 11:35 usb-ZTE_Incorporated_ZTE_CDMA_Technologies_MSM-if01-port0 -> ../../ttyUSB1
lrwxrwxrwx 1 root root 13 Dez 26 11:35 usb-ZTE_Incorporated_ZTE_CDMA_Technologies_MSM-if03-port0 -> ../../ttyUSB2
pi@test:~ $


Gammu SMS Daemon

Um SMS versenden zu können, benötigen wir einen Daemon. Diesen muss instaliert werden::

$ sudo apt-get -y install gammu-smsd

Anschließend muss die Konfigurationsdatei /etc/gammu-smsdrc editiert werden. Der Inhalt sollte, abgesehen von der PIN, so wie folgt aussehen:

$ sudo nano /etc/gammu-smsdrc
gammu-smsdrc
# Configuration file for Gammu SMS Daemon
# Gammu library configuration, see gammurc(5)
 
[gammu]
# Please configure this!
port = /dev/ttyUSB3
connection = at115200
 
# Debugging
logformat = textalldate
 
# SMSD configuration, see gammu-smsdrc(5)
[smsd]
# pin = 1234
 
service = files
logfile = /var/log/gammu-smsd
RunOnReceive = /usr/local/bin/smsreceive.sh
 
# Increase for debugging information
debuglevel = 4
ReceiveFrequency = 300
 
# Paths where messages are stored
inboxpath = /var/spool/gammu/inbox/
outboxpath = /var/spool/gammu/outbox/
sentsmspath = /var/spool/gammu/sent/
errorsmspath = /var/spool/gammu/error/

Nachdem die Datei gespeichert wurde, starten wir den SMS Daemon neu.

$ sudo /etc/init.d/gammu-smsd restart

Erfolgt der Start ohne Fehlermeldungen (siehe Ausgabe und ggf. Logfile /var/log/gammu-smsd), steht einer SMS nichts mehr im Wege.

echo "Diese Test-SMS wurde mit Hilfe von Gammu vom Raspberry gesendet" | sudo gammu-smsd-inject TEXT "+436776320xxx"

SMS Empfang und Verarbeitung

Der SMS-Deamon legt empfangene SMS im Inbox-Verzeichnis ab. Mit dem Eintrag RunOnReceive in der Konfigurationsdatei wird das eingetragene Programm gestartet. Damit werden Aktionen bei einer eingegangenen SMS gestartet. Ebenso gibt es die Kommandos RunOnSend oder RunOnError, mit denen ebenfalls Aktionen gestartet werden können. Mehr Informationen auf der Gammu-Webseite RunOnReceive.

Das Shell-Script smsreceive.sh schreibt die Eingegangenen SMS in die /var/log/user.log.

~ $ sudo nano /usr/local/bin/smsreceive.sh
smsreceive.sh
#!/bin/bash
 
# Check sender
# if [ "$SMS_1_NUMBER" = "Nummer_OK" ] ; then
# exit
# fi
 
# Alle Meldungen ins Syslog ausgeben
for i in $(seq $SMS_MESSAGES) ;
do
  logger -t smsd "SMS Teil: $i"
  eval logger -t smsd \"Absender: \${SMS_${i}_NUMBER}\"
  eval logger -t smsd \"Text: \${SMS_${i}_TEXT}\"
done

Dieses Script ist aus der Zeitschrift Raspberry Pi GEEK übernommen und zeigt beispielhaft, wie die empfangenen SMS verarbeitet werden können. Im Teil „# Check sender“ kann die Rufnummer kontrolliert werden, falls notwendig. Statt Nummer OK ist natürlich die zu kontrollierende Nummer in der Form 43664….. einzusetzen.


SMS-Versand bei Ereignis

Um einen SMS-Versand bei einem eintretenden Ereignis automatisch durchzuführen, ist ein Script notwendig.

keysms.sh
#!/bin/bash
# Datei in /home/pi/keysms.sh
 
gpio mode 3 in
 
while true
do
 
taste="$( gpio read 3 )"
 
if [ "$taste" = "0" ]; then
  gammu-smsd-inject TEXT 06776320xxxx -text "Die Taste am Raspberry wurde gedrückt"
  echo "Taste gedrückt"
  exit
fi
 
done

Für diesen Test muss das Shell-Script für jeden Vorgang neu gestartet werden. WiringPI muss installiert sein.

Taste für SMS-Test

Die Taste simuliert ein beliebiges Ereignis
wie Alarm, Stromausfall, etc.

Bei einem Druck auf die Taste wird der inject-String formatiert in den OutboxPath gelegt und damit vom SMS-Server verarbeitet.


Quellenverzeichnis

rpiserver.txt · Zuletzt geändert: 2019/01/22 01:29 von edenhofer