Ich verwende aktuell MariaDB als Datenbanksystem, was aus einem Fork von MySQL entstanden und weiterhin dazu kompatible ist. Es besitzt aber einige zusätzlichen Features. Ich möchte hier nichts über die Vor- und Nachteile zu PostgreSQL oder MySQL schreiben. Jede dieser Datenbanksysteme hat seine Daseinsberechtigung und jeder muss selbst entscheiden welches er einsetzt und ich habe mich aktuell für MariaDB entschieden. Die folgende Anleitung beschreibt wie MariaDB installiert und konfiguriert werden kann. Die Anleitung sollte auch 1:1 mit MySQL funktionieren.
WeiterlesenKategorie: MariaDB / MySQL
WordPress mit Let’s Encrypt SSL Zertifikat unter Ubuntu Linux 16.04 mit nginx und MariaDB oder MySQL installieren
WordPress ist ein Content Management System (CMS), welches es erlaubt relativ einfach den Inhalt einer statischen Webseite oder eines Blogs zu pflegen. Es basiert auf PHP und benötigt einen Webserver sowie eine Datenbank zur Ausführung. Ich beschreibe in diesem Beitrag wie WordPress unter Ubuntu Linux 16.04 mit nginx als Webserver, SSL Zertifikate von Let’s Encrypt sowie MariaDB bzw. MySQL als Datenbank installiert werden kann. Wie diese Dinge Konfiguriert werden können habe ich bereits in folgenden Beiträgen beschrieben
- MySQL oder MariaDB unter Ubuntu Linux 16.04 installieren und konfigurieren
- nginx unter Ubuntu Linux 16.04 Server mit sicherer SSL Konfiguration, PHP und MariaDB oder MySQL installieren und konfigurieren
- Let’s Encrypt SSL Zertifikate unter Ubuntu Linux 16.04 Server mittels nginx und webroot Plugin beziehen
Vorbereitung
Nginx / Let’s Encrypt
Zuerst sollte wie in den oben verlinkten Beiträgen eine nginx Konfigurationsdatei erstellt sowie ein Let’s Encrypt SSL Zertifikat beantragt werden.
Falls für das Beantragen der SSL Zertifikate ein dummy-Verzeichnis verwendet wurde muss zuerst ein Verzeichnis für die WordPress Dateien angelegt werden.
$ sudo mkdir -p /var/www/com.example.blog
Damit es später möglich ist WordPress über die Webseite zu aktualisieren sollten die Rechte an diesem Ordner dem Benutzer und der Gruppe www-data zugewiesen werden.
$ sudo chown www-data:www-data /var/www/com.example.blog
Danach muss die nginx Konfiguration unter /etc/nginx/sites/available/com.example.blog durch nachfolgende ersetzt werden – natürlich mit den eigenen Angaben für IP-Adressen, Domains, Pfade etc.
server { listen 80; listen [xxx:xxx:xxx::42]:80; server_name blog.example.com; return 301 https://$server_name$request_uri; } server { listen 443 ssl; listen [xxx:xxx:xxx::42]:443 ssl; server_name blog.example.com; ssl_certificate /etc/letsencrypt/live/blog.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/blog.example.com/privkey.pem; add_header Strict-Transport-Security "max-age=63072000; includeSubdomains;"; root /var/www/com.example.blog; index index.php; location = /robots.txt { try_files $uri $uri/ /index.php?$args; } location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. try_files $uri $uri/ /index.php?$args; } # pass the PHP scripts to FastCGI server location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.0-fpm.sock; } # snippet for updating letsencrypt certificates include snippets/certbot-webroot.conf; }
Nun muss die Konfiguration ggf. noch aktiviert werden.
$ sudo ln -s /etc/nginx/sites-available/com.example /etc/nginx/sites-enabled/
Bevor die neue Konfiguration geladen wird sollte geprüft werden, dass sie Fehlerfrei ist.
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Anschließend kann sie geladen werden.
$ sudo /etc/init.d/nginx reload
[ ok ] Reloading nginx configuration (via systemctl): nginx.service.
WordPress
Damit ist nginx fertig konfiguriert und die WordPress Dateien können heruntergeladen, entpackt und ihre Rechte gesetzt werden. Falls die englische Version von WordPress installiert werden soll muss die Datei https://wordpress.org/latest.zip heruntergeladen werden.
$ cd /var/www/com.example.blog
$ sudo wget https://de.wordpress.org/latest-de_DE.zip
--2017-05-29 20:33:32-- https://de.wordpress.org/latest-de_DE.zip
Resolving de.wordpress.org (de.wordpress.org)... 66.155.40.249, 66.155.40.250
Connecting to de.wordpress.org (de.wordpress.org)|66.155.40.249|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 9251402 (8.8M) [application/zip]
Saving to: ‘latest-de_DE.zip’
latest-de_DE.zip 100%[=================================================>] 8.82M 4.08MB/s in 2.2s
2017-05-29 20:33:35 (4.08 MB/s) - ‘latest-de_DE.zip’ saved [9251402/9251402]
$ sudo unzip latest-de_DE.zip
$ sudo rm latest-de_DE.zip
$ sudo mv wordpress/* ./
$ sudo rm -r wordpress
$ sudo chown -R www-data:www-data *
MariaDB / MySQL
Bevor die Installation gestartet wird muss noch eine Datenbank für WordPress angelegt werden. Wie eine Datenbank mit zugehörigem Benutzer angelegt werden kann habe ich im Beitrag MySQL oder MariaDB Datenbank über das Terminal erstellen beschrieben.
Installation
Nun, da nginx, Let’s Encrypt und MariaDB bzw. MySQL konfiguriert wurde kann die Installation gestartet werden. Dazu muss einfach die in nginx konfigurierte Domain aufgerufen werden, hier im Beispiel also https://blog.example.com. Auf der nun angezeigten Webseite kann einfach auf „Los geht’s!“ geklickt werden.
Im zweiten Schritt müssen die Verbindungsinformationen zur Datenbank eingegeben werden. Anschließend können diese mit einem Klick auf „Senden“ gespeichert werden.
Der dritte Schritt erlaubt es mit einem Klick auf „Installation ausführen“ die eigentliche Installation von WordPress zu starten.
Im vierten Schritt werden Angaben wie der Titel der Webseite sowie Benutzername und Passwort verlangt. Nachdem dies ausgefüllt wurde kann einfach auf „WordPress Installieren“ geklickt werden.
Der fünfte Schritt besteht lediglich aus einer Bestätigung, dass WordPress erfolgreich installiert wurde. Mit einem Klick auf „Anmelden“ wird der Browser auf die Anmeldeseite von WordPress weitergeleitet.
WordPress wurde damit erfolgreich installiert und kann genutzt werden.
Piwik unter Ubuntu Linux 16.04 Server mit nginx und MariaDB/MySQL installieren und konfigurieren
Piwik ist eine freie Alternative zu Google Analytics und anderen Diensten, welche Statistiken über die Besucher von Websiten erstellen. In diesem Beitrag beschreibe ich wie Piwik unter Ubuntu Linux 16.04 Server mit nginx und MariaDB/MySQL installiert und konfiguriert werden kann.
WeiterlesenMySQL oder MariaDB Datenbank über das Terminal löschen
Falls man eine bestehende MySQL oder MariaDB Datenbank mit einem zugehörigen User löschen möchte und kein Grafisches Administraiontstool wie phpMyAdmin zur Verfügung steht kann dies auch ganz einfach über das Terminal erledigt werden.
Zuerst muss man sich ins Datenbanksystem einloggen. Dabei authentifiziert man sich über das Passwort des Datebankbenutzers root.
$ mysql -p > Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 51 Server version: 10.0.29-MariaDB-0ubuntu0.16.04.1 Ubuntu 16.04 Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
Zuerst lassen wir uns alle Benutzer anzeigen.
> MariaDB [(none)]> SELECT User,Host FROM mysql.user; +--------------+-----------+ | User | Host | +--------------+-----------+ | myseconduser | localhost | | myuser | localhost | | root | localhost | +--------------+-----------+ 3 rows in set (0.00 sec)
Wir möchten den Benutzer myuser löschen, da er zur Datenbank gehört die wir löschen möchten.
> MariaDB [(none)]> DROP USER 'myuser'@'localhost'; Query OK, 0 rows affected (0.00 sec)
Nun überprüfen wir, ob der Benutzer wirklich gelöscht wurde indem wir uns nochmals alle Benutzer anzeigen lassen.
> MariaDB [(none)]> SELECT User,Host FROM mysql.user; +--------------+-----------+ | User | Host | +--------------+-----------+ | myseconduser | localhost | | root | localhost | +--------------+-----------+ 2 rows in set (0.00 sec)
Der Benutzer wird nicht mehr gelistet und ist daher erfolgreich gelöscht worden.
Nun lassen wir uns alle Datenbanken ausgeben.
> MariaDB [(none)]> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mydatabase | | myseconddatabase | | mysql | | performance_schema | +--------------------+ 5 rows in set (0.00 sec)
Wir möchten die Datenbank mydatabase löschen.
> MariaDB [(none)]> DROP DATABASE mydatabase; Query OK, 0 rows affected (0.00 sec)
Nun überprüfen wir, ob die Datenbank wirklich gelöscht wurde.
> MariaDB [(none)]> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | myseconddatabase | | mysql | | performance_schema | +--------------------+ 4 rows in set (0.00 sec)
Da die Datenbank nicht mehr gelistet wird wurde sie erfolgreich gelöscht.
Abschließend kann die Konsole des Datenbanksystems verlassen werden.
> MariaDB [(none)]> quit Bye
MySQL oder MariaDB Datenbank über das Terminal erstellen
Falls man eine neue MySQL oder MariaDB Datenbank mit einem zugehörigen User erstellen möchte und kein Grafisches Administraiontstool wie phpMyAdmin zur Verfügung steht kann dies auch ganz einfach über das Terminal erledigt werden.
Zuerst muss man sich ins Datenbanksystem einloggen. Dabei authentifiziert man sich über das Passwort des Datebankbenutzers root.
$ sudo mysql -p > Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 51 Server version: 10.0.29-MariaDB-0ubuntu0.16.04.1 Ubuntu 16.04 Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
Jetzt kann dir neue Datenbank (mydatabase) erstellt werden
> MariaDB [(none)]> create database mydatabase; Query OK, 1 row affected (0.00 sec)
Jetzt lassen wir uns alle Datenbanken ausgeben – Hier sollte die gerade erstellte bereits auftauchen.
> MariaDB [(none)]> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mydatabase | | mysql | | performance_schema | +--------------------+ 4 rows in set (0.00 sec)
Als nächstes muss ein dazugehöriger Benutzer (myuser) angelegt und ihm die Rechte an der Datenbank gegeben werden. Als Passwort sollte auch hier ein sicheres gewählt werden. Ich erstelle immer für jede Datenbank einen neuen Benutzer mit einem individuellen Passwort. So können die Auswirkungen begrenzt werden, falls jemand drittes Zugriff auf einen Benutzer mit Passwort bekommt.
> MariaDB [(none)]> grant all privileges on mydatabase.* to 'myuser'@'localhost' identified by "mySecurePassword"; Query OK, 0 rows affected (0.00 sec)
Auch hier sollte der Benutzer bereits angezeigt werden, wenn wir uns alle Benutzer ausgeben lassen.
> MariaDB [(none)]> SELECT User,Host FROM mysql.user; +--------+-----------+ | User | Host | +--------+-----------+ | myuser | localhost | | root | localhost | +--------+-----------+ 2 rows in set (0.00 sec)
Nun müssen noch die Rechte geschrieben werden.
> MariaDB [(none)]> flush privileges; Query OK, 0 rows affected (0.01 sec)
Abschließend kann die Konsole des Datenbanksystems verlassen werden.
> MariaDB [(none)]> quit Bye
Jetzt kann mit dem neu erstellten Benutzer auf die angelegte Datenbank zugegriffen werden.
MySQL oder MariaDB unter Ubuntu Linux 16.04 installieren und konfigurieren
HINWEIS: Eine Aktualisierte Version dieses Beitrages für Ubuntu 20.04 ist >hier< verfügbar
Ich verwende aktuell MariaDB als Datenbanksystem, was aus einem Fork von MySQL entstanden und weiterhin dazu kompatible ist. Es besitzt aber einige zusätzlichen Features. Ich möchte hier nichts über die Vor- und Nachteile zu PostgreSQL oder MySQL schreiben. Jede dieser Datenbanksysteme hat seine Daseinsberechtigung und jeder muss selbst entscheiden welches er einsetzt und ich habe mich aktuell für MariaDB entschieden. Die folgende Anleitung beschreibt wie MariaDB installiert und konfiguriert werden kann. Die Anleitung sollte auch 1:1 mit MySQL funktionieren.
Weiterlesen