Grundlage:
https://wiki.debian.org/WordPress
Pakete installieren
apt-get install wordpress mysql-server
Entscheidung: Multisite oder Standardinstallation?
Doku lesen:
Entscheidung: Standardinstallation
Einrichtung
Eine Schritt für Schritt Anleitung zum Anlegen einer Wordpress-Instanz
Datenbank und Verzeichnisse anlegen
Mit Skript Datenbank usw. erzeugen lassen
sudo bash /usr/share/doc/wordpress/examples/setup-mysql -n exampledomaintld example-domain.tld
Achtung: Anscheinend legt das Skript seit Debian 9 oder 10 keine Verzeichnisstrukturen mehr an, weil als Standard die Multisite-Installation verwendet wird. Also manuell:
cd /srv/www/wp-content
sudo cp -ia wordpress-template example-domain.tld
Dabei entspricht das Verzeichnis wordpress-template der alten Verzeichnisstruktur:
ls -la /srv/www/wp-content/wordpress-template
drwxr-xr-x 5 root root 4096 Oct 6 2019 .
drwxr-xr-x 13 root root 4096 Jun 11 18:42 ..
drwxrwxr-- 2 root www-data 4096 Sep 18 2019 blogs.dir
lrwxrwxrwx 1 root root 39 Sep 18 2019 languages -> /var/lib/wordpress/wp-content/languages
lrwxrwxrwx 1 root root 37 Sep 18 2019 plugins -> /var/lib/wordpress/wp-content/plugins
lrwxrwxrwx 1 root root 36 Sep 18 2019 themes -> /var/lib/wordpress/wp-content/themes
drwxrwxr-x 2 root www-data 4096 Jun 11 05:46 upgrade
drwxrwxr-- 2 root www-data 4096 Jun 11 18:41 uploads
Es gibt dort keine weiteren Dateien oder Unterverzeichnisse.
Apache2 Host anlegen
Danach die Konfiguratiosdatei für Apache anlegen, in der Dokumentation ist ein Beispiel:
less /usr/share/doc/wordpress/examples/apache.conf
Hinweis: Es ist sinnvoll, die neu angelegte Wordpress-Instanz mit eine Authentifizierungsmethode, z. B. .htaccess Benutzername / Passwort zu schützen.
SSL-Zertifikat erzeugen
Einfacher Weg:
LetsencryptSetup
Alternative manuell durchführen:
cd /etc/ssl/private/
openssl req -new -x509 -days 1000 -nodes -out example-domain.tld.crt -keyout example-domain.tld.key
chmod 600 example-domain.tld.key
chgrp ssl-cert example-domain.tld.key
mv -i example-domain.tld.crt ../certs/
Info: Dateinamen möglicherweise anders, da geändert. Bitte mitdenken ;-)
Konfiguration online durchführen
Seite im Browser öffnen und Konfiguration durchführen.
Feineinstellungen
Datum, Uhrzeit, Sprache
Im Backend in den allgemeinen Einstellungen: Datumsformat, Sprache, etc. einstellen.
Gravater-Abhängigkeit eleminieren
Quelle:
https://www.wpbeginner.com/beginners-guide/how-to-disable-gravatars-in-wordpress/
Im Backend unter Einstellungen > Diskussion > Avatare anzeigen (o. ä., weiter unten)
Es kann sein, dass der Menüpunkt nicht angezeigt wird. Das liegt erfahrungsgemäß daran, dass Kommentare deaktiviert sind. Also erst die Kommentare aktivieren, Avatare deaktivieren und dann die Kommentare wieder deaktivieren.
Zum aktivieren der Kommentare das "Disable Comments"-Plugin deaktivieren bzw. umkonfigurieren.
Pingback deaktivieren
Einstellungen > Schreiben
Unten bei Update-Service die Adresse entfernen.
Serverseitig
Für ein Deutsches Backend, Datei unter /etc/wordpress editieren und folgendes hinzufügen:
define('WPLANG', 'de_DE');
Admin-Login nur über SSL erlauben
define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);
Login-Prompts bei Theme- und Plugin-Installation verhindern
define('FS_METHOD', 'direct');
Optional bei Problemen zum Debuggen hilfreich:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
.htaccess Datei
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
Quelle:
https://wordpress.org/support/article/htaccess/
Empfohlene Plugins
Installieren
Empfohlen für Funktionalität
Sicherheits-relevante Plugins
Hilfreiche Admin-Werkzeuge
Löschen
- Akismet – nicht datenschutz-konform
Probleme (und vielleicht auch Lösungen)
Verzeichnis konnte nicht angelegt werden
Installiere Plugin: Disable Comments 1.7
Runterladen des Installationspakets von https://downloads.wordpress.org/plugin/disable-comments.zip…
Entpacken des Pakets…
Verzeichnis konnte nicht angelegt werden.
Lösung: Das wp-content Verzeichnis (/srv/www/wp-content/einexperte.de) für www-data beschreibbar machen. Dort hat der Installer ein "upgrade" Verzeichnis angelegt. Und noch das languages-Verzeichnis ... im Detail:
root@web:/srv/www/wp-content/einexperte.de# chmod g+w .
root@web:/srv/www/wp-content/einexperte.de# chgrp www-data .
root@web:/usr/share/wordpress/wp-content# chmod g+w languages/
root@web:/usr/share/wordpress/wp-content# chgrp www-data languages/
Quelle:
https://help.ubuntu.com/community/WordPress
Domain ändern
Grobe Schritte, wie ich sie bei
https://dental-studio-zingk.de durchgeführt habe:
- Im Vorweg ggf. die Nameserver-Einstellungen anpassen
- Backup des Verzeichnisbaums und der Datenbank machen
- Wie unter https://codex.wordpress.org/Changing_The_Site_URL#Edit_functions.php beschrieben die neue Url in's Wordpress propagieren (und versuchen, auf der Seite einzuloggen, schlägt voraussichtlich fehl, ist aber für den Funktionsaufruf wichtig)
update_option( 'siteurl', 'https://neuer-domainname.tld' );
update_option( 'home', 'https://neuer-domainname.tld' );
- Ggf. neue Zertifikate erzeugen bzw. anpassen
- Webserver-Konfiguration unter /etc/apache/sites-* anpassen
- Wordpress Verzeichnis verschieben: /srv/www/wp-content/...
- Konfigurationsdatei unter /etc/wordpress umbenennen und neuen Verzeichnisnamen eintragen
White Screen Of Death nach Migration auf neue Version
Lösung: Einmal
http://narrenmagie.de/wp-admin/ (Domain entsprechend ändern) aufrufen und Datenbank-Upgrade durchführen.
Character-Encoding Problem nach PHP-Upgrade
Problem: Nach dem Upgrade von php 5.6 auf php 7.3 werden im Wordpress-Frontend (auf allen Webseiten) alle Sonderzeichen als kryptische Kombination dargestellt.
Workaround: Folgende Zeilen in die entsprechende Konfigurationsdatei der Seite einfügen:
define('DB_CHARSET', 'latin1');
define('DB_COLLATE', '');
WP-Embeds deaktivieren (Youtube, etc.)
Es gibt diverse Plugins, die dies im Titel versprechen, aber keines davon hat bei mir funktioniert.
Was funktioniert, ist, in die functions.php folgenden Code einzufügen:
Embeds im Frontend deaktivieren:
remove_filter( 'the_content', array( $GLOBALS['wp_embed'], 'autoembed' ), 8);
Embeds im Backend (Editor) deaktivieren:
function disable_visual_editor_embeds( $plugins ) {
return array_diff( $plugins, array('wpview') );
}
add_filter( 'tiny_mce_plugins', 'disable_visual_editor_embeds' );
Quelle:
https://webhostinghero.org/disabling-embeds-in-wordpress-posts-and-the-visual-editor/
Wordpress auf neuen Server umziehen
Annahme: Auf dem neuen Server läuft ein neuerer Apache, dessen Konfigurationsdateien nicht kompatibel sind.
Auf dem alten Server
- Datenbank-Dump erstellen: mysqldump -u root -p datenbankname > dbdump.sql
- Einen Tarball mit allen wichtigen Dateien auf dem alten Server packen (z. B. unter /tmp):
- wp-content-Verzeichnis in wp-content tarball packen
- Konfigurationsdatei von /etc/wordpress/config-bla.php
- dbdump.sql
- Ggf. angepasste Themes / Plugins
- Tarball mit scp auf neuen Server kopieren
Auf dem neuen Server
- Tarball in /tmp entpacken
- Datenbank importieren
- Datenbank anlegen
- Benutzer anlegen sowie Passwort und Rechte vergeben
- Zuvor erstellte dbdump.sql-Datei importieren: mysql -u root -p datenbankname < dbdump.sql
- wp-content Verzeichnis in entsprechendes Verzeichnis entpacken
- Konfigurationsdatei nach /etc/wordpress verschieben und ggf. Eigentümer bzw. Rechte anpassen
- Optional: Letsencrypt-Zertifikat erstellen
- DNS-Einstellungen auf neue IP-Adresse anpassen (beim Provider)
- Domainnamen in Datei /etc/dehydrated/domains.txt eintragen
- /usr/bin/dehydrated -c aufrufen
- Apache-Konfiguration:
- Konfigurationsdateien erstellen: Kopie von anderen Wordpress-Konfigurationsdateien machen und Domain-Namen anpassen.
- Konfiguration testen: apache2ctl configtest
- Server neu starten: systemctl restart apache2
Auf einem Client
- Die IP-Adresse des neuen Servers in /etc/hosts eintragen (solange DNS-Einträge noch auf den alten Server zeigen).
- Datenbank aktualisieren: Im Browser http://domain.tld/wp-admin/ aufrufen.
Jetzt sollte alles laufen ... hoffentlich ;-)
Erste Schritte im Wordpress
Rechtliches
- Cookie consent installieren und konfigurieren
- Seite Impressum erstellen
- Seite Dateschutzerklärung erstellen (bzw. kopieren)
- Menüs "Hauptmenü" und "Rechtliches" erstellen
Konfiguration
- Theme auswählen. Astra ist gut.
- Menü "Rechtliches" in den Footer setzen.
Siehe auch