Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| centos:web_c7:mysqldumper [03.07.2015 13:32. ] – django | centos:web_c7:mysqldumper [18.11.2024 19:14. ] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | ====== MySQLDumper unter CentOS 7.x installieren und einrichten ====== | + | ====== MySQLDumper unter CentOS 7.x mit Apache 2.4, PHP 7.2 und PHP-FPM |
| - | {{: | + | {{: |
| + | Zum komfortablen Sichern und ggf. Wiederherstellen einzelner Tabellen und/oder Datenbanken unseres **[[centos: | ||
| + | Eine genaue Funktionsbeschreibung von **[[http:// | ||
| + | ===== Installation ===== | ||
| + | ==== PHP-Voraussetzungen ==== | ||
| + | Für unseren komfortablen Weg der Sicherung unseres **MariaDB-Servers** muss natürlich ein funktionstüchtiger [[centos: | ||
| + | * **php72u** (aus dem IUS Repository) | ||
| + | * **perl-CGI** | ||
| + | * **perl-Email-Date-Format** | ||
| + | * **perl-Net-SMTP-SSL** | ||
| + | * **perl-Net-HTTPTunnel** | ||
| + | * **perl-Net-Daemon** | ||
| + | * **perl-PlRPC** | ||
| + | * **perl-DBI** | ||
| + | * **perl-MIME-Types** | ||
| + | * **perl-MIME-Lite** | ||
| + | * **perl-DBD-MySQL** | ||
| + | * **perl-Net-FTPSSL** | ||
| + | * **perl-MailTools** | ||
| + | |||
| + | Zur einfachen Installation via **YUM** greifen wir auf die folgenden Repositories zurück: | ||
| + | * **CentOS-Base** | ||
| + | * **IUS Repo** | ||
| + | * **[[centos: | ||
| + | * **[[centos: | ||
| + | |||
| + | Die oben genannten Pakete installieren wir, sofern diese nicht schon bei der Grundinstallation unseres Apache-Webservers erfolgte, mit Hilfe von **YUM** | ||
| + | # yum install php72u perl-CGI perl-Email-Date-Format perl-Net-SMTP-SSL perl-Net-HTTPTunnel perl-Net-Daemon \ | ||
| + | | ||
| + | |||
| + | ==== mysqldumper ==== | ||
| + | Die aktuelle Entwicklerversion von **mysqldumper** mit **// | ||
| + | |||
| + | Wir klonen uns also dieses Programmpaket. Dazu wechseln wir zuerst in das Zielverzeichis auf unserem Datenbank-/ | ||
| + | # cd / | ||
| + | |||
| + | Anschließend klonen wir den Programm-Zweig. | ||
| + | # git clone https:// | ||
| + | |||
| + | Für die Backup-Dateien, | ||
| + | # mkdir -p / | ||
| + | |||
| + | Da wir den **[[centos: | ||
| + | |||
| + | # chown php-fpm: / | ||
| + | |||
| + | # chmod -R 777 / | ||
| + | # chmod -R 755 / | ||
| + | |||
| + | ===== grundlegende Konfiguration ===== | ||
| + | |||
| + | ==== Apache vHOST ==== | ||
| + | Im ersten Konfigurationsbeispiel richten wir uns einen vHOST für unseren Apache-Webserver ein. Hier legen wir uns nachfolgende Konfigurationsdatei an und passen dieser entsprechend unserer Umgebung nach an. | ||
| + | |||
| + | # vim / | ||
| + | |||
| + | <file apache / | ||
| + | # Django : 2017-10-08 | ||
| + | # vHost mysqldumper | ||
| + | # | ||
| + | |||
| + | # Variablen der Hostvariablen | ||
| + | Define vhost mysqldumper | ||
| + | Define errors_log logs/ | ||
| + | Define access_log logs/ | ||
| + | Define ssl_log logs/ | ||
| + | |||
| + | < | ||
| + | ServerAdmin webmaster@nausch.org | ||
| + | ServerName ${vhost}.nausch.org | ||
| + | |||
| + | # HTTP auf HTTPS umleiten | ||
| + | RewriteEngine on | ||
| + | RewriteCond %{HTTPS} off | ||
| + | RewriteRule (.*) https:// | ||
| + | |||
| + | # Welche Logdateien sollen beschrieben werden | ||
| + | SetEnvIf Remote_Addr " | ||
| + | ErrorLog | ||
| + | CustomLog ${access_log} combined env=!dontlog | ||
| + | </ | ||
| + | < | ||
| + | ServerAdmin webmaster@nausch.org | ||
| + | ServerName ${vhost}.nausch.org | ||
| + | ServerPath / | ||
| + | |||
| + | # Wer soll Zugriff auf die Webseite(n) bekommen? | ||
| + | < | ||
| + | Options +FollowSymLinks +Multiviews -Indexes | ||
| + | AllowOverride None | ||
| + | AuthType Basic | ||
| + | AuthName "Fuer den Zugriff auf den Webserver bitte Anmeldedaten eingeben!" | ||
| + | AuthBasicProvider ldap | ||
| + | AuthLDAPUrl ldaps:// | ||
| + | AuthLDAPBindDN cn=Technischeruser, | ||
| + | AuthLDAPBindPassword " | ||
| + | AuthLDAPBindAuthoritative on | ||
| + | Require ldap-user admindb | ||
| + | </ | ||
| + | |||
| + | # Welcher Inhalt soll angezeigt bzw. auf welchen Server sollen die HTTP-Requests weitergeleitet werden? | ||
| + | DocumentRoot | ||
| + | DirectoryIndex index.php | ||
| + | |||
| + | < | ||
| + | Options none | ||
| + | AllowOverride Limit | ||
| + | Require all granted | ||
| + | Options ExecCGI FollowSymLinks | ||
| + | AddHandler cgi-script .pl | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | Require all denied | ||
| + | </ | ||
| + | |||
| + | # Nutzung des PHP-FPM Interpreters | ||
| + | < | ||
| + | SetHandler " | ||
| + | #SetHandler " | ||
| + | </ | ||
| + | |||
| + | # Welche Logdateien sollen beschrieben werden | ||
| + | SetEnvIf Remote_Addr " | ||
| + | ErrorLog | ||
| + | CustomLog ${access_log} combined env=!dontlog | ||
| + | CustomLog ${ssl_log} "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \" | ||
| + | |||
| + | # Absicherung der Übertragung mit Hilfe von TLS | ||
| + | # Django : 2015-10-04 - TLS-Verschlüsselung mit Hilfe von mod_ssl | ||
| + | SSLEngine on | ||
| + | # Definition der anzubietenden Protokolle | ||
| + | SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 | ||
| + | # Definition der Cipher | ||
| + | SSLCipherSuite ECDHE-RSA-AES256-GCM-SHA384: | ||
| + | # Schlüsseldatei, | ||
| + | SSLCertificateKeyFile / | ||
| + | # Zertifikatsdatei, | ||
| + | SSLCertificateFile / | ||
| + | # Zertifikatsdatei des bzw. der Intermediate-Zertifikate(s) | ||
| + | SSLCertificateChainFile / | ||
| + | # Änderung der Cipherorder der Clients verneinen | ||
| + | SSLHonorCipherOrder on | ||
| + | # TLS 1.0 Kompremmierung deaktivieren (CRIME attacks) | ||
| + | SSLCompression off | ||
| + | # Online Certificate Status Protocol stapling zum Prüfen des Gültigkeitsstatus des Serverzertifikats. | ||
| + | SSLUseStapling on | ||
| + | SSLStaplingResponderTimeout 5 | ||
| + | SSLStaplingReturnResponderErrors off | ||
| + | |||
| + | # HTTP Strict Transport Security (HSTS), bei dem der Server dem Client im HTTP-Header mitteilt, | ||
| + | # dass dieser nur noch verschlüsselt mit dem Server kommunizieren soll. | ||
| + | Header always set Strict-Transport-Security " | ||
| + | |||
| + | # This header enables the Cross-site scripting (XSS) filter built into most recent web browsers. | ||
| + | # It's usually enabled by default anyway, so the role of this header is to re-enable the filter for | ||
| + | # this particular website if it was disabled by the user. | ||
| + | # https:// | ||
| + | #Header set X-XSS-Protection "1; mode=block" | ||
| + | Header always set X-Xss-Protection "1; mode=block" | ||
| + | |||
| + | # when serving user-supplied content, include a X-Content-Type-Options: | ||
| + | # to disable content-type sniffing on some browsers. | ||
| + | # https:// | ||
| + | # currently suppoorted in IE > 8 http:// | ||
| + | # http:// | ||
| + | # ' | ||
| + | # Sofern die Datei auch den entsprechenden MIME-Typ " | ||
| + | # CSS-Dateien nur als CSS interprätieren. | ||
| + | Header always set X-Content-Type-Options nosniff | ||
| + | |||
| + | # config to don't allow the browser to render the page inside an frame or iframe | ||
| + | # and avoid clickjacking http:// | ||
| + | # if you need to allow [i]frames, you can use SAMEORIGIN or even set an uri with ALLOW-FROM uri | ||
| + | # https:// | ||
| + | ###header set X-Frame-Options SAMEORIGIN | ||
| + | header always set X-Frame-Options DENY | ||
| + | |||
| + | # hide server header (apache and php version) | ||
| + | Header always unset Server | ||
| + | |||
| + | # Only allow JavaScript from the same domain to be run. | ||
| + | # don't allow inline JavaScript to run. | ||
| + | Header always set X-Content-Security-Policy "allow ' | ||
| + | #Header always set Content-Security-Policy " | ||
| + | |||
| + | # Add Secure and HTTP only attributes to cookies | ||
| + | Header edit Set-Cookie ^(.*)$ $1; | ||
| + | |||
| + | # prevent Clickjacking Attack | ||
| + | #Header always append X-Frame-Options SAMEORIGIN | ||
| + | Header always set X-Frame-Options " | ||
| + | |||
| + | # hkpk-stuff | ||
| + | Header always set Public-Key-Pins " | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | Haben wir die Konfigurationsdatei vervollständigt, | ||
| + | # apachectl -t | ||
| + | |||
| + | | ||
| + | |||
| + | Ein reload unseres Apache Webserver reicht nun aus, um den neuen vHOST verfügbar zu haben. | ||
| + | # systemctl reload httpd | ||
| + | |||
| + | |||
| + | |||
| + | ===== Anwendungskonfiguration ===== | ||
| + | Die Konfiguration von **[[http:// | ||
| + | $ firefox http:// | ||
| + | |||
| + | Nach Aufruf der Seite, müssen wir als erstes auswählen welche Sprache verwendet werden soll. | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | Haben wir die Sprache ausgewählt klicken wir auf die Schaltfläche **[ Installation ]**. Auf der nächsten Seite definieren wir den Datenbankuser, | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | Haben wir die benötigten Parameter eingegeben, klicken wir auf die Schaltfläche **[ zu MySQL verbinden ]**. In der unteren Bildschirmhälfte wird uns dann angezeigt welche Datenbanken gefunden wurden. | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | Da die Verbindung erfolgreich hergestellt werden konnte, können wir nun die Konfigurationsdatei schreiben. Hierzu klicken wir auf die Schaltfläche **[ speichern und Installation fortsetzen ]**. | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | Wir befinden uns nun auf der Hauptseite von **MySQLDumper**. Da wir noch keinen Verzeichnisschutz angelegt haben, wird uns der Hinweis **Dringend empfohlen** und blendet die Schaltfläche **[ Verzeichnisschutz erstellen ] **. Wir klicken daher auf diese Schaltfläche. | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | Haben wir alle Daten wie gewünscht eingetragen klicken wir auf die Schaltfläche **[ Verzeichnisschutz erstellen ] **. | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | Die nun eingeblendete Frage, bestätigen wir durch einen Klick auf die Schaltfläche **[ OK ]**. Konnte der Webserver die benötigte Datei nicht selbst schreiben, da er z.B. keine Berechtigung zum Scheiben des WebRoot-Verzeichnisses hat, wird uns folgende Seite präsentiert. | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | Die angezeigten Daten kopieren wir uns nun und speichern die beiden Dateien im Verzeichnis // | ||
| + | |||
| + | # vim / | ||
| + | <file apache / | ||
| + | RewriteEngine off | ||
| + | </ | ||
| + | AuthName " | ||
| + | AuthType Basic | ||
| + | AuthUserFile "/ | ||
| + | require valid-user | ||
| + | </ | ||
| + | |||
| + | # vim / | ||
| + | <file apache / | ||
| + | </ | ||
| + | |||
| + | Nun klicken wir im Webfrontend auf die Schaltfläche **[ Home ]**. | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | <WRAP center round tip 85%> | ||
| + | Der Paypal-Spendebutton auf der linken Seite beißt keineswegs! ;) Wer schon mal per Hand versucht hat sehr große Datenbankbackups zurück zu sichern, kann ein Lied davon singen, wie aufwändig dies sein kann. \\ | ||
| + | \\ | ||
| + | **__Also nicht zaudern, sondern direkt an den Programmautor [[admin@daniel-schlichtholz.de|Daniel Schichtholz]] ein paar € spenden!__** | ||
| + | </ | ||
| + | |||
| + | ====== Links ====== | ||
| + | * **[[centos: | ||
| + | * **[[wiki: | ||
| + | * **[[http:// | ||