WordpressSetup

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:
  1. Im Vorweg ggf. die Nameserver-Einstellungen anpassen
  2. Backup des Verzeichnisbaums und der Datenbank machen
  3. 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' );
  4. Ggf. neue Zertifikate erzeugen bzw. anpassen
  5. Webserver-Konfiguration unter /etc/apache/sites-* anpassen
  6. Wordpress Verzeichnis verschieben: /srv/www/wp-content/...
  7. 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

  1. Datenbank-Dump erstellen: mysqldump -u root -p datenbankname > dbdump.sql
  2. Einen Tarball mit allen wichtigen Dateien auf dem alten Server packen (z. B. unter /tmp):
    1. wp-content-Verzeichnis in wp-content tarball packen
    2. Konfigurationsdatei von /etc/wordpress/config-bla.php
    3. dbdump.sql
    4. Ggf. angepasste Themes / Plugins
  3. Tarball mit scp auf neuen Server kopieren

Auf dem neuen Server

  1. Tarball in /tmp entpacken
  2. Datenbank importieren
    1. Datenbank anlegen
    2. Benutzer anlegen sowie Passwort und Rechte vergeben
    3. Zuvor erstellte dbdump.sql-Datei importieren: mysql -u root -p datenbankname < dbdump.sql
  3. wp-content Verzeichnis in entsprechendes Verzeichnis entpacken
  4. Konfigurationsdatei nach /etc/wordpress verschieben und ggf. Eigentümer bzw. Rechte anpassen
  5. Optional: Letsencrypt-Zertifikat erstellen
    1. DNS-Einstellungen auf neue IP-Adresse anpassen (beim Provider)
    2. Domainnamen in Datei /etc/dehydrated/domains.txt eintragen
    3. /usr/bin/dehydrated -c aufrufen
  6. Apache-Konfiguration:
    1. Konfigurationsdateien erstellen: Kopie von anderen Wordpress-Konfigurationsdateien machen und Domain-Namen anpassen.
    2. Konfiguration testen: apache2ctl configtest
    3. Server neu starten: systemctl restart apache2

Auf einem Client

  1. Die IP-Adresse des neuen Servers in /etc/hosts eintragen (solange DNS-Einträge noch auf den alten Server zeigen).
  2. Datenbank aktualisieren: Im Browser http://domain.tld/wp-admin/ aufrufen.
Jetzt sollte alles laufen ... hoffentlich ;-)

Erste Schritte im Wordpress

Rechtliches

  1. Cookie consent installieren und konfigurieren
  2. Seite Impressum erstellen
  3. Seite Dateschutzerklärung erstellen (bzw. kopieren)
  4. Menüs "Hauptmenü" und "Rechtliches" erstellen

Konfiguration

  1. Theme auswählen. Astra ist gut.
  2. Menü "Rechtliches" in den Footer setzen.

Siehe auch

Topic-Revision: r52 - 09 Jan 2023, EinExperte
Diese Seite läuft auf FoswikiDas Urheberrecht © liegt bei den mitwirkenden Autoren. Alle Inhalte dieser Kollaborationsplattform sind Eigentum der Autoren.
Ideen, Anfragen oder Probleme bezüglich bitmuehle wiki? Feedback senden