Auf Raspbian Jessie / Stretch / Buster: Apache, PHP 7.3, MariaDB & WordPress installieren

Eine komplette Umgebung.

Ausgangslage

Wir installieren auf einem Raspberry Pi, auf welchem das Grundbetriebsystem Raspbian Jessie, Stretch oder Buster installiert ist, den Apache Webserver, PHP 7 und die Datenbanksoftware MariaDB. Danach erweitern wir mit Tools.

Raspberry PI Vorbereitung

Zur Verwaltung des Systems via Remote ist eine Installation von SSH sinnvoll.

sudo sudo raspi-config

Unter Interfacing options kann ssh gewählt werden. Dort kann Enable or disable ssh server gewählt werden.

Danach können wir mit dem Benutzer pi und dem Standardpasswort raspberry einloggen.

Als erstes machen wir ein Systemupdate.

sudo apt-get update
sudo apt-get upgrade

Quellen hinzufügen

Da wir auf externe Paketquellen angewiesen sind, installierne wir diese nach einem ersten erfolgreichen Systemupdate.

sudo nano /etc/apt/sources.list

Wir fügen folgende weitere Zeile hinzu, oder kommentieren sie ein. Je nach Distribution kann stretch durch buster oder jessie ersetzt werden.

deb http://mirrordirector.raspbian.org/raspbian/ stretch main contrib non-free rpi

Wir verwenden nur die zusäzlichen Programme dieser neuen Quelle, nicht alle. Daher erweitern wir unser

sudo nano /etc/apt/preferences

Mit folgendenen Einträgen. Je nach Distribution kann stretch durch buster oder jessie ersetzt werden.

Package: *
Pin: release n=stretch
Pin-Priority: 600

Danach machen wir nochmals ein Systemupdate.

sudo apt-get update
sudo apt-get upgrade

Serversoftware installieren

Maria DB

Wir installieren die Datenbanksoftware MariaDB 10.x:

sudo apt-get -y install mariadb-server mariadb-client

Nach der Installation legen wir die Zugangsdaten fest.

sudo mysql_secure_installation

Das current password for root ist keines, daher legen wir dies dann fest.

Set root password? [Y/n] Y
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y

Schlussendlich laden wir die Berechtigungen neu.

Reload privilege tables now? [Y/n] Y

Danach haben wir immenroch ein Login/Passwort-Fehler, wenn wir in MySQL einloggen möchten. Dies beheben wir ebenfalls auf der Shell. Dazu deaktivieren wir das Plugin-Login. Einloggen in MySQL:

sudo mysql -u root

Anpassungen:

MariaDB [(none)]> use mysql;
MariaDB [mysql]> update user set plugin='' where User='root';
MariaDB [mysql]> flush privileges;
MariaDB [mysql]> exit

Apache 2

Danach installieren wir den Webserver Apache 2.

sudo apt-get -y install apache2

Nun können wir schon mit dem Browser auf unsere IP, auf welcher unser Raspberry antwortet surfen: http://172.25.2.2/ und erhalten einen Willkommensbildschirm.

Raspbian Apache 2 Welcome-Seite

PHP 7

Weiter installieren wir PHP 7.3. Hierzu sollte Raspbian buster installiert sein: Die Version kann gewählt werden. Dann einfach php7.2-xx oder ähnlich verwenden.

sudo apt-get -t buster -y install php7.3 php7.3-mysql php7.3-curl php7.3-gd php7.3-zip php7.3-fpm php7.3-cli php7.3-opcache php7.3-json php7.3-mbstring php7.3-xml libapache2-mod-php7.3

Danach richten wir PHP 7 PFM, welches unter Apache 2 läuft ein.

sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php7.3-fpm
sudo systemctl restart apache2

Serversoftware testen

Auf unserem Raspberry Pi können wir nun unsere erste PHP 7 Seite erstellen, eine PHP-Info Webpage. Dies kann einfach über ein erstes PHP-File erreicht werden.

sudo nano /var/www/html/info.php

Mit folgendem Inhalt.

<?php 
phpinfo(); 
?>

Nun können wir wiederum mit dem Browser auf unsere IP des Raspberrys surfen und erhalten beim Aufruf von info.php (in Unserem Beispiel http://172.25.2.2/info.php) nachfolgende Seite.

PHP 7.3 PHPinfo

Administrationssoftware installieren

Wir installieren phpMyAdmin (Stand des Downloads: 04.07.2019) und eine WordPress-Instantz. phpMyAdmin um die Datenbanken bearbeiten zu können. Dann als Ziel des Setups soll WordPress auf unserem Raspberry Pi laufen.

phpMyAdmin

cd /var/www/html/
sudo wget https://files.phpmyadmin.net/phpMyAdmin/4.9.0.1/phpMyAdmin-4.9.0.1-all-languages.zip
sudo unzip phpMyAdmin-4.9.0.1-all-languages.zip
sudo mv phpMyAdmin-4.9.0.1-all-languages pma

Wir setzen im phpMyAdmin ein geheimes Passwort (blowfish_secret).

sudo nano pma/config.sample.inc.php

Wir gehen an die Stellen, an welcher sich blowfish_secret befindet geben und eine einmalige, krpytische Zeichenfolge ein. Dies muss pro phpMyAdmin Installation gemacht werden. Danach wird wir das Sample umbenannt.

sudo mv pma/config.sample.inc.php pma/config.inc.php

Nun können wir mittels Browser auf unsere Adresse aufs phpMyAdmin zugreifen: http://172.25.2.2/pma/ und erhalten folgende Seite, auf welcher wir mit dem Benutzer root und dem zuvor in der MariaDB-Installation festgelegtem Passwort einloggen können.

PHPMyAdmin Login-Screen

WordPress

WordPress installieren wir unter der Adresse /wordpress. Dazu laden wir WordPress und machen die allgemeinen Voreinstellungen.

cd /var/www/html
sudo wget https://wordpress.org/latest.zip
sudo unzip latest.zip
sudo chown -R www-data:www-data wordpress/

Nun können wir schon mit unserem Browser auf http://172.25.2.2/wordpress. Uns fehlt noch eine Datenbank. Hier erstellen wir eine Datenbank und einen dazugehörenden Benutzer. Dies geschieht am einfachsten über phpMyAdmin.

Wir wählen uns ins phpMyAdmin ein, wählen Benutzerkonten und richten einen Neuen Benutzer ein. Es ist wichtig, dass wir gleich „Erstelle eine Datenbank mit gleichem Namen und gewähre alle Rechte.“ anwählen. Somit wird ein Benutzer und eine Datenbank erstellt.

Nun richten wir WordPress ein, indem wir als erstes die Datenbankinformationen angeben und weiter die Seite konfigurieren.

Nach erfolgreicher WordPress-Installation ist das Raspberry ein komplett kleiner Webserver mit flexiblem Blog und CMS. Viel Spass!

21 Kommentare

    Sehr gute Anleitung! Frage: Funnktioniert diese Anleitung auch mit dem neuen Raspbian 4.9 Stretch?

    Antworten

    Klar – die Anleitung ist erweitert.

    Vielen Dank!
    Die Anleitung hat mir beim Upgrade von php5 auf php7 auf dem RaspberryPi3 sehr geholfen. Hat alles wunderbar funktioniert.
    Meine WordPress Seite ist nun wesentlich schneller!

    Antworten

    führte bei mir zum Fehler „ERROR 1698 (28000): Access denied for user ‚root’@’localhost'“.
    Abhilfe mit

    Antworten

    Habe genau das gleiche Problem.
    Wie hast du Abhilfe schaffen können?

    sudo mysql -u root -p

    #….danach mit dem vorher vergebenen Kennwort anmelden und weiter nach Anleitung……

    Ich habe auf meinem RPi 3 B+ Raspbian Stretch installiert (SD-Karte formatiert und Image-Datei rauf gespielt) und bin der Anleitung gefolgt
    Wenn ich
    sudo nano /etc/apt/preferences
    eingebe, erscheint ein leerer Editor, bei mir existiert also kein Datei „preferences“ in /etc/apt/
    Ich habe dann eine neue Datei erstellt und die 3 Einträge laut Anleitung darin abgespeichert

    Wenn ich aber ein Upgrade machen möchte, kommt folgender Fehler:
    E: Paketdatei /etc/apt/preferences konnte nicht verarbeitet werden (1).

    Was hab ich da falsch gemacht?

    Antworten

    Vermutlich muss das File nicht mehr angepasst werden – also bitte leer lassen (oder löschen) und nochmals testen.

    Ja, ich habs mal gelöscht und weiter gemacht, dann hats mit dem Upgrade auch wieder geklappt
    Aber ich bin schon beim nächsten Fehler angelangt…. :-S

    Wenn man PHP installiert, soll laut Anleitung Raspbian Buster installiert sein
    Ich habe aber noch Stretch auf meinem Pi

    Also hab ich mal probiert, statt buster stretch einzugeben und die php-Dateien ohne Versionsnummern geschrieben, dann müsste ja automatisch die aktuellste Version heruntergeladen werden

    Mein Pi arbeitet die Installationsliste gerade durch, und meldet bei jedem Paket:
    Temporärer Fehlschlag beim Auflösen von >>raspbian.raspberrypi.org<<

    Kann man die benötigten Pakete irgendwie mit Stretch installieren?
    Oder muss ich Buster installieren?

    Ein Mitarbeiter bei uns hat heute ein buster nach der Anleitung installiert und es hat soweit funktioniert. Die korrekte Quelle war im sources.list bereits drin und das preference File hat auch nicht existiert. Insofern wurde dieser Teil bei buster einfach weggelassen.

    Ist wirklich die korrekte Quelle für stretch eingetragen? Der Befehl für PHP sollte lauten: sudo apt-get -t stretch -y install.
    Prüfen Sie doch auch, ob eine Internetverbindung vom Raspberry auf die Sources vorhanden ist.

    Ich habe jetzt Buster installiert, da ich sowiso mal auf die neues Version aktualisieren wollte…
    Die Anleitung funktioniert hier perfekt
    (habe
    sudo nano /etc/apt/sources.list
    und
    sudo nano /etc/apt/preferences
    nicht geändert/erstellt)

    Danke

    Hi,
    danke für dieses umfangreiche tutorial. Hat mir sehr weitergeholfen.

    Grüße

    Antworten

    Super. Nach 3 Stunden rumprobieren mit anderen Anleitungen habe ich neu aufgesetzt und mit dieser Anleitung hat alles (außer WP, wird nicht benötigt), bestens funktioniert. Vielen Dank.

    Antworten

    Super, hat alles perfekt funktioniert. Dankeschön

    Antworten

    Eine perfekte Anleitung, vielen Dank! Und alles hat auf Anhieb funktioniert! Ein kleiner Fehler hat sich eingeschlichen, bei dem Befehl mysql -u root muss ein sudo davor. Hat mich einen Moment gekostet, weil ich nicht dran gedacht hab.
    Vielen Dank!

    Antworten

    Danke für Ihre Rückmeldung und kleine Korrektur, welche nun eingepflegt ist!

    Hallo
    bei mir hat es nicht geklappt. Ich hatte PHP Version 7.20.1+b2 schon installiert. Die neue Version wird auch nicht angezeigt. Nach der Installation von PHP Admin erhalte ich nachfolgende Fehlermeldung beim einloggen (IP/pma).
    phpMyAdmin – Fehler
    Die Erweiterung mysqli fehlt. Bitte die PHP-Konfiguration überprüfen. Siehe unsere Dokumentation für mehr Informationen.

    Antworten

    Endlich mal eine Anleitung, mit der das Einrichten eines LAMP-Stacks auf dem Raspi für mich in einem Rutsch geklappt hat. Einfach nur klasse! Besten Dank dafür!

    Antworten

    Nach einigem probieren hat es jetzt alles geklappt.
    Alte Version von PHP removed
    und für blowfish ein passwort zwischen ‚ ‚ eingetragen und nicht ersetzt

    Antworten

    Vielen lieben Dank!
    ich beschäftige mich erst seit kurzem mit der Thematik und du hast mich ein großes stück weiter gebracht.
    Super Anleitung!

    Antworten

Kommentar schreiben

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