WordPress mit Bedrock auf Uberspace installieren

Bedrock ist super. Es handelt sich hierbei um eine bessere Art, WordPress nicht nur zu installieren, sondern auch zu warten, Plugins und Themes zu installieren und zu aktualisieren.

Im nachfolgenden beschreibe ich die Installation auf einem Uberspace.

Vorwort

Ich gehe erstmal davon aus, dass die Zielgruppe dieses Posts weiß, was Bedrock ist. Eine Beschreibung dessen würde den Rahmen sprengen.
Mehr Informationen zu Bedrock selbst gibt es auf der Herstellerseite.

Datenbank einrichten

Da jeder einen aktuelleren MySQL-Server bevorzugt, nutzen wir den bis zum großen CentOS 7 Update bereitgestellten MariaDB-Server anstelle des default MySQL-Servers.

Shell:

$ uberspace-setup-mariadb

PHP einrichten

Na klar, PHP ist vorinstalliert. Allerdings nutzen wir lieber die aktuellste PHP-Version.

Wir schauen also, welche Versionen auf unserem System verfügbar sind.

Shell:


$ ls -ld /package/host/localhost/php-*

[..]
drwxr-xr-x. 9 packagesync packagesync 4096 Apr 6 2016 /package/host/localhost/php-7.0.5
drwxr-xr-x. 9 packagesync packagesync 4096 May 4 2016 /package/host/localhost/php-7.0.6
drwxr-xr-x. 9 packagesync packagesync 4096 Jun 23 2016 /package/host/localhost/php-7.0.8
lrwxrwxrwx. 1 packagesync packagesync 33 Dec 8 14:17 /package/host/localhost/php-7.1 -> /package/host/localhost/php-7.1.0

Wir können also zum 7.1er Zweig wechseln.

Shell:


$ echo PHPVERSION=7.1 > etc/phpversion
$ killall php-cgi
$ logout

Nach dem erneuten Login sehen wir auch selbst die neue Version:

Shell:


$ php --version
PHP 7.1.0 (cli) (built: Dec 2 2016 13:41:28) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.1.0-dev, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.1.0, Copyright (c) 1999-2016, by Zend Technologies

Oder ähnlich.

Composer installieren

Composer ist ein Paketmanager für PHP und das Beste, was PHP in jüngerer Zeit vor Iterable passiert ist.

Bedrock macht intensiven Gebrauch davon, um mitunter Themes oder Plugins zu verwalten.

Shell:

$ wget https://raw.githubusercontent.com/composer/getcomposer.org/1b137f8bf6db3e79a38a5bc45324414a6b1f9df2/web/installer -O - -q | php -- --quiet
$ mv composer.phar /home/$USER/bin/composer
$ chmod +x /home/$USER/bin/composer
$ composer --version
Composer version 1.4.1 2017-03-10 09:29:45

composer steht nun systemweit bereit.

Bedrock herunterladen

Wir installieren Bedrock in /var/www/virtual/$USER/bedrock.

Shell:


$ cd /var/www/virtual/$USER/
$ composer create-project roots/bedrock

Installing roots/bedrock (1.7.7)
- Installing roots/bedrock (1.7.7): Downloading (100%)
Created project in /var/www/virtual/bedrock/bedrock
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Package operations: 8 installs, 0 updates, 0 removals
- Installing johnpbloch/wordpress-core-installer (0.2.1): Downloading (100%)
- Installing composer/installers (v1.2.0): Downloading (100%)
- Installing johnpbloch/wordpress-core (4.7.4): Downloading (100%)
- Installing johnpbloch/wordpress (4.7.4): Downloading (100%)
- Installing oscarotero/env (v1.0.2): Downloading (100%)
- Installing roots/wp-password-bcrypt (1.0.0): Downloading (100%)
- Installing vlucas/phpdotenv (v2.4.0): Downloading (100%)
- Installing squizlabs/php_codesniffer (2.8.1): Downloading (100%)
Generating autoload files

oder ähnlich. Bedrock ist jetzt vollständig unter /var/www/virtual/$USER/bedrock installiert. Wie man sieht, wurde WordPress auch schon installiert, und zwar über composer. The dream!

Bedrock konfigurieren

Fehlt noch unsere Datenbankverbindung. Nachdem wir ins bedrock-Verzeichnis gewechselt haben, kopieren wir zuerst die beispielhafte Konfigurationsdatei .env.example nach .env.

Shell:


$ cd /var/www/virtual/$USER/bedrock
$ cp .env.example .env

Unsere Verbindungsdaten entnehmen wir der ~/.my.mariadb.cnf. Diese müssen noch in die .env geschrieben werden.


$ nano .env

DB_NAME=database_name
DB_USER=database_user
DB_PASSWORD=database_password

# Optional variables
DB_HOST="127.0.0.1:3307"
# DB_PREFIX=wp_

WP_ENV=development
WP_HOME=http://example.com
WP_SITEURL=${WP_HOME}/wp

# Generate your keys here: https://roots.io/salts.html
AUTH_KEY='generateme'
SECURE_AUTH_KEY='generateme'
LOGGED_IN_KEY='generateme'
NONCE_KEY='generateme'
AUTH_SALT='generateme'
SECURE_AUTH_SALT='generateme'
LOGGED_IN_SALT='generateme'
NONCE_SALT='generateme'

DB_NAME, DB_USER, DB_PASSWORD, WP_HOME entsprechend anpassen und die Salts wie vorgeschlagen einfach von roots.io/salts.html einfügen.

Symlink anlegen

Damit die WordPress-Installation im DocumentRoot liegt, wird ein symlink von /var/www/virtual/$USER/bedrock/web in /var/www/virtual/$USER/html erzeugt.

Shell:


$ rmdir /var/www/virtual/$USER/html
$ ln -s /var/www/virtual/$USER/bedrock/web /var/www/virtual/$USER/html

Fertig!

Jetzt könnt ihr wie gewohnt den Installationsassistenten ausführen. Im Produktivbetriebt nicht vergessen, WP_ENV in der .env auf „production“ zu setzen.

Ich kann jetzt aber keine Dateien mehr im Backend bearbeiten und keine Themes und Plugins installieren?!11

Ja, das ist Sinn der Sache. Plugins und Themes installierst du über composer. Wenn du im Bedrock-Verzeichnis bist, kannst du beispielsweise AntiRobot Contact Form wie folgt installieren:

Shell:


$ cd /var/www/virtual/$USER/bedrock
$ composer require wpackagist-plugin/antirobot-contact-form

Du musst lediglich wpackagist-plugin für ein Plugin als vendor angeben, und wpackagist-theme für ein Theme. Als Package-Name gilt der unique key des Plugins. Das ist gleichzeitig der letzte URL-Pfadabschnitt im WordPress.org Plugin-Verzeichnis.

Wie aktualisiere ich WordPress und meine Plugins?

unter /var/www/virtual/$USER/bedrock/composer.json ist die WordPress-Version fest hinterlegt. Einfach die Version ändern und ein

$ composer update

ausführen.

Veraltete Plugins und Themes erkennst du durch

$ composer outdated

. Nur daran denken, dass man sich im Bedrock-Verzeichnis befinden muss.

4 Antworten auf „WordPress mit Bedrock auf Uberspace installieren“

    1. bei dem Symlink stieß ich auf ein weiteres Problem:
      /var/www/virtual/$USER/html ist normalerweise nicht leer. Hier müsste vorher noch das .well_known Verzeichnis gelöscht werden bevor der übergeordnete Ordner gelöscht werden kann.

      Ansonsten eine super Anleitung.
      Wie sieht das denn mit den selbsttätigen Updates von WordPress aus? WP aktualisiert sich ja selbst – und wenn du schreibst, dass dann in /var/www/virtual/$USER/bedrock/composer.json die Version angepasst werden muss, könnte es da doch zu Problemen kommen wenn WordPress sich automatisch aktualisiert hat, oder nicht?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.