Wiki/Software-Install/Wordpress.md

7 KiB

Wordpress install

Dependencies Installation

Mit den folgenden Commandos Updaten wir die Lokale Repo und installieren diverse Dependencies. Einige davon sind optional (Ghostscript) andere braucht es zwingend.

Updaten des Systems

sudo apt update

Installieren der Dependencies

sudo apt install apache2 ghostscript libapache2-mod-php mysql-server php php-bcmath php-curl php-imagick php-intl php-json php-mbstring php-mysql php-xml php-zip

Bei der Installation von mysql-server wird man nach einem root Passwort gefragt dieses ist sehr wichtig bei der Einrichtung der Datenbank daher ist es wichtig sich dieses zu merken der weiteren sollte dieses sehr sicher sein da es sonst zu einer Übernahme der Datenbank kommen kann. PHP so wie alle Module (php-{modulname}) sind wichtig da WordPress auf genau diese vertraut. mysql-server ist die Datenbank, welche wir brauchen um Posts so wie Accountdaten zu Speichern.

Datenbank (MySql) Konfiguration

Wenn der User Root kein Passwort hat bzw. bei der Installation nicht eins eingegeben werden konnte, muss man folgendermassen vorgehen:

sudo mysql

Ändern des root Passworts

ALTER USER root@localhost IDENTIFIED WITH mysql_native_password BY 'Das.Ist.Ein.Sicheres.Passwort.123';

Wir Logen uns im Terminal in der Datenbank ein mit dem Commando:

sudo mysql -u root

Nun sind wir in mysql eingeloggt, was wir daran erkennen das der Consolen-Ps2 nun so aussieht

mysql>

Nun können wir mit dem folgenden Commandos eine neue Datenbank erstellen.

CREATE DATABASE wordpress;

Es ist bad praktice wenn wir uns mit dem Root Account einloggen würden (innerhalb der WordPress Installation) daher erstellen wir einen neuen User in MySql mit dem Befehl:

CREATE USER wordpress@localhost IDENTIFIED BY 'Dies.Ist.Ein.Sicheres.Passwort.123';

Dies.Ist.Ein.Sicheres.Passwort.123 ist natürlich kein sicheres Passwort dies sollte durch ein mindestens 8-stelliges Passwort geändert werden. Der Neue User hat noch keine Berechtigungen innerhalb der Datenbank diese können wir mit dem folgenden Befehl verteilen:

GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON wordpress.* TO wordpress@localhost;

Die neu erteilten Berechtigungen müssen noch angewendet werden dies machen wir mit dem Befehl:

FLUSH PRIVILEGES;

Nun haben wir alles was in MySql einzurichten ist erledigt innerhalb des cli. Mit folgendem Befehl schlissen wir die Datenbank wieder:

quit

Es gäbe eigentlich viele verschiedene Methoden, um die Datenbank einzurichten. Eine weiter wäre mit PHPMyAdmin. Wir dachten uns aber, dass es mehr Sinn machen würde, wenn wir die Einrichtung der Datenbank direkt innerhalb der Console umsetzen.

Webserver (Apache2) Konfiguration

Um die apache2 Seite zu veröffentlichen, erstellen wir die Datei: sudo nano /etc/apache2/sites-available/wordpress.conf und schreiben folgendes in die Datei rein:

<VirtualHost *:80>
    DocumentRoot /var/www/html
    <Directory /var/www/html>
        Options FollowSymLinks
        AllowOverride Limit Options FileInfo
        DirectoryIndex index.php
        Require all granted
    </Directory>
    <Directory /var/www/html/wp-content>
        Options FollowSymLinks
        Require all granted
    </Directory>
</VirtualHost>

Damit sagen wir dem Apache Webserver, wo er das Verzeichnis findet wo WordPress liegt. Des Weiteren geben wir mit dem zweiten Directory Tag an wo der Content liegt, zB. Bilder Videos und sonstige Dateien. Nun müssen wir unsere neue Seite in Apache2 noch aktivieren mit dem Command:

sudo a2ensite wordpress

Nun müssen wir noch ein Plugin von Apache2 aktivieren damit uns WordPress weiterleiten darf. Dafür verwenden wir den Command:

sudo a2enmod rewrite

Jetzt haben wir noch das kleine Problem, dass die Apache2 Installation eine Standard-Config hat, diese deaktivieren wir mit dem Command:

sudo a2dissite 000-default

Als letztes müssen wir noch den Apache2 Deamon neustarten. Dies gelingt uns mit folgendem Befehl:

sudo service apache2 reload

Wordpress Initialisierung

Das der User Zugriff auf die Dateien hat und nicht nur root.

sudo chown www-data: /var/www/html

In den richtigen Pfad gelangen

cd /var/www/html

Die neuste Version von Wordpress als Ordner herunterladen

sudo -u www-data wget https://wordpress.org/latest.tar.gz

Den Wordpress Ordner entpacken

sudo -u www-data tar -xzvf latest.tar.gz

Alle Dateien vom Wordpress Ordner rausziehen ins html Verzeichnis

sudo -u www-data cp -r /var/www/html/wordpress/* /var/www/html/

(Den Gepackten Ordner entfernen, wir haben alle Dateien, welche wir brauchen in das html Verzeichnis geladen)

sudo rm latest.tar.gz

Wordpress mit der Datenbank verbinden

Das man die wp-config.php erstellt

sudo -u www-data cp /var/www/html/wp-config-sample.php /var/www/html/    wp-config.php

Datenbank Name, Nutzername, Passwort setzen

sudo -u www-data sed -i 's/database_name_here/wordpress/' /var/www/html/wp-config.php

sudo -u www-data sed -i 's/username_here/wordpress/' /var/www/html/wp-config.php

sudo -u www-data sed -i 's/password_here/<DiesIstEinSicheresPasswort >/' /var/www/html/wp-config.php

Das man zum wp-config.php gelangt. Danach verwendet man einzigartige Schlüsseln, um es zu sichern.

sudo -u www-data nano /var/www/html/wp-config.php

Mit der Webseite https://api.wordpress.org/secret-key/1.1/salt/ kann man zufällige Schlüsseln generieren. Und die füllt man dann in den Platzhalter ein.

define( 'AUTH_KEY',         ' Einzigartigen Schlüssel einfügen ' );
define( 'SECURE_AUTH_KEY',  ' Einzigartigen Schlüssel einfügen ' );
define( 'LOGGED_IN_KEY',    ' Einzigartigen Schlüssel einfügen ' );
define( 'NONCE_KEY',        ' Einzigartigen Schlüssel einfügen ' );
define( 'AUTH_SALT',        ' Einzigartigen Schlüssel einfügen ' );
define( 'SECURE_AUTH_SALT', ' Einzigartigen Schlüssel einfügen ' );
define( 'LOGGED_IN_SALT',   ' Einzigartigen Schlüssel einfügen ' );
define( 'NONCE_SALT',       ' Einzigartigen Schlüssel einfügen ' );

Diese Schlüssel wurden generiert von: https://api.wordpress.org/secret-key/1.1/salt/

define('AUTH_KEY',         '{<xKp_D0Z{ +$kxw)R}lYB+]}9ehD-UWDG<Rju}D*83!QC<)$0ln|}c&oB./eVh=');
define('SECURE_AUTH_KEY',  '6N$~ldhd$8 3+2!J=q@#/U.n#8o;E9@I`{L|f|Ae|EF2Vk8Rzz!kh7wE[clf+S-z');
define('LOGGED_IN_KEY',    '1qcV$|.!(qs%A};gph:A,,m0t&M3^<TG|xn|8Q6c($3vo28$)Ep6L+uPFBxv.<n5');
define('NONCE_KEY',        'b+cnAx Z^nRfch,|fME|e$hF%La7rhnI13F}E|5y<bS=41s]^1B]KoQq;CbY8[{f');
define('AUTH_SALT',        'mU@)v68l[@M5{a+`k~/,:.5h2OT1zh3H4Y_}I?9Rjo$zY41jvq_I%vmS>oX [>u-');
define('SECURE_AUTH_SALT', 'I9dO^U2Q&xe7r41jPh-s-sfy98VnwO-;|d~Yo54[rYYH@e HH9$IO(e!Ip-mv;Hk');
define('LOGGED_IN_SALT',   'o$LhIz@K/2=6fve*_*cj`oERU,rikp-$M+l;3,z3T]0ah/9)M6g-=jQe+}PMd.~)');
define('NONCE_SALT',       'e-=+EReQF)/g4C0QU&nMEU=@02J:Era0oM_y|>:-?xIPD95:?3&D)<i6jX+k~z=b');

Quellen: ubuntu.com Wordpress install HowTo