cryeffect.net

Webserver einrichten auf dem Raspberry Pi

Jeder kennt es, man braucht mal schnell einen kleinen Webserver zum testen von Projektänderungen, dafür eignet sich der Raspberry Pi wunderbar. Für größere Projekte stößt er aber leider an seine Grenzen. Ich zeige euch wie ihr den Apache2, PHP7 und MySQL mit MariaDB installiert. Das ganze läuft bei mir wieder auf dem aktuellen Raspbian Buster Lite.
Als erstes sollten wir ein Update durchführen:

1
sudo apt-get update && apt-get upgrade

Anschließend installieren wir uns den Apache2 als grundlegende Server Anwendung (alternativ Nginx) mit der aktuellen Version von PHP.

1
2
sudo apt-get install apache2
sudo apt-get install php php-mbstring2

Damit hätten wir uns den Apache2 Dienst samt dem aktuellen PHP installiert. In dem Fall handelt es sich um PHP7.3. Damit wir dort auch Seiten veröffentlichen können, muss unser Ordner /var/www/html entsprechende Rechte erhalten. Die wir wie folgt erteilen:

1
2
sudo chown -R pi:www-data /var/www/html/
sudo chmod -R 775 /var/www/html/

Mit dem ersten Befehl haben wir den Ordner www-data als neuen Eigentümer zugeteilt und mit chmod 770 erlauben wir dem Eigentümer und Gruppe, dass diese beide Schreiben & Lesen dürfen, im Ordner, während es dritten untersagt ist.

Weiter gehts mit MariaDB! Seit Debian 9 gibt es dort kein MySQL mehr, stattdessen wird auf MariaDB gesetzt. Persönlich muss ich sagen, nutze ich seit Jahren MariaDB auf meinen Servern und kann nix negatives sagen. Wir installieren den MariaDB Server und das geht wie folgt:

1
2
sudo apt-get install mariadb-server
sudo mysql -u root -p

Bei der ersten Anmeldung als Root-Datenbankuser ist das Passwort toor. Nach dem Login werden die folgenden Befehle direkt in die Konsole der MariaDB eingegeben, womit wir das root-Benutzer Passwort ändern. Ersetze hierbei deinPasswort durch ein von dir gewünschtes.

1
2
USE mysql; UPDATE user SET password=PASSWORD('deinPasswort') WHERE User='root' AND Host = 'localhost'; FLUSH PRIVILEGES;
exit;

Anschließend melden wir uns wieder als Root an, aber mit unserem Passwort. Bitte beachtet hier, auf Sonderzeichen zu verzichten, bei mir führte dies zu Login Problemen.

1
sudo mysql --user=root --password=IhrPasswort

Nun erstellen wir noch einen neuen Benutzer mit allen Rechten. Es gibt diverse Anwendungen, die ihren Dienst verweigern, wenn sie als root laufen sollen. Ein Beispiel hierfür wäre PHPMyAdmin.

1
2
3
CREATE USER 'deinName'@'localhost' IDENTIFIED BY 'deinPasswort';
GRANT ALL PRIVILEGES ON *.* TO 'deinName'@'localhost' WITH GRANT OPTION;
exit;

Zum Schluss noch die Installation von PhpMyAdmin. Sie wäre nicht dringend notwenig, macht aber durch die grafische Oberfläche später vieles einfacher. Bei der Installation fragt das Programm nach der Installation. Wähle hier bitte Apache2 und auf die Frage mit dbconfig-common wähle “nein”.

1
sudo apt-get install phpmyadmin

Nun erstellen wir die Apache2 Konfigurations Datei für PhpMyAdmin und schreiben anschließend folgenden Inhalt rein.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# phpMyAdmin Apache configuration

Alias /phpmyadmin /usr/share/phpmyadmin

<Directory /usr/share/phpmyadmin>
Options SymLinksIfOwnerMatch
DirectoryIndex index.php
</Directory>

# Disallow web access to directories that don't need it
<Directory /usr/share/phpmyadmin/templates>
Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/libraries>
Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/setup/lib>
Require all denied
</Directory>

Jetzt müssen wir die neue Konfigurationsdatei aktivieren und den Apache2 neustarten.

1
2
a2enconf phpmyadmin
systemctl reload apache2

Zum Schluss erstellen wir noch ein Temporäres Verzeichnis für PhpMyAdmin, welches benötigt wird und geben dem User www-data entsprechnde Rechte für den Zugriff.

1
2
sudo mkdir /usr/share/phpmyadmin/tmp/
sudo chown -R www-data:www-data /usr/share/phpmyadmin/tmp/

PhpMyAdmin können wir jetzt in unserem Browser aufrufen, via IP-Adresse/phpmyadmin.
Nun haben wir einen funktionierenden Webserver auf unserem Raspberry Pi zulaufen.