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