Installation LAMP-Stack

apache + PHP

Installation von Programmpaketen allgemein.

  • Programmliste aktualisieren: sudo apt update
  • Programm installieren: sudo apt install programmname -y

Installiere folgende Pakete:

  • apache2
  • libapache2-mod-php

Mit der Eingabe der URL des Hosts sollte die Testseite im Browser erscheinen. Wo liegt das dazugehörige index.html ? Tipp: die Konfigurationsfiles des Webservers sind unter /etc/apache2 zu finden. Suche mit dem Kommando grep (Hilfe man grep) nach dem Schlüsselwort DocumentRoot.

Editiere index.html, sodass der Rechnername angezeigt wird. Erstelle ein neues File test.php und überprüfe damit die Funktion des PHP - Moduls.

<?php
  phpinfo();
?>

Webverzeichnisse für jeden einzelnen Benutzer

Erweitere die Konfiguration, sodass jeder User seine eigene Seite z.B. in /home/pi/public_html erstellen kann, die dann im Browser unter http://familienname.local/~pi erscheint: sudo a2enmod userdir Nach jeder Konfigurationsänderung muss der Webserver neu gestartet werden.

Mit dem Programm systemd können bei neueren Linux-Distributionen Serverdienste gesteuert und überwacht werden. Schlage in den Manpages (z.B. man systemctl) nach, um die passende Kommandosyntax zu finden.

  • systemctl: Starten / Stoppen / Neustarten von Serverdiensten
  • journalctl: Lesen der Logfiles

Editiere die Datei /etc/apache2/mods-enabled/php*.conf wie im Kommentar am Ende angegeben, um auch in den Benutzerverzeichnissen PHP zu aktivieren.

In weiterer Folge soll nach Möglichkeit immer nur unter public_html im eigenen home gearbeitet werden (z.B. als user pi).

Installation von MySQL / Mariadb + zugehörige PHP-Module

Benötigt werden:

  • mariadb-server
  • php-mysql
  • mycli (optional: etwas komfortabler als das Standard-Textinterface mysql)
  • adminer (optional: Webinterface zur Administration)

Nach der Installation startet der MySQL-Server automatisch.

Das Anlegen von Datenbanken:

sudo mysql -u root -p

Dann mit Eingabetaste ohne Passwort in die MySQL-Kommandozeile!

Datenbank meine_db für user fred anlegen:

CREATE DATABASE meine_db;
GRANT ALL PRIVILEGES ON meine_db.* To 'fred'@'localhost' IDENTIFIED BY 'mein-sicheres-password';

Zur "normalen" Arbeit mit der unter root erstellten Datenbank einen eigenen MySQL-Benutzer (z.B. pi, fred, …) verwenden. Einloggen geht dann entweder mit

mysql -u fred -p

oder komfortabler (optional) mit

mycli -u fred

Ausgabe einer zuvor erstellten Tabelle über eine Webseite

Wir verwenden zum Zugriff auf MySQL via PHP einen objektorientierten Ansatz - derzeit die programmtechnisch übersichtlichste und sicherste Methode.

Doku + Beispiele (jeweils am Ende jedes Eintrages):

http://php.net/manual/en/book.pdo.php