Level 1 – Einfache Serververwaltung (Minimal): Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 1: | Zeile 1: | ||
| − | = Level 1 – Einfache Serververwaltung (Minimal) = | + | = Level 1 – Einfache Serververwaltung (Minimal, konsistent) = |
== Ziel == | == Ziel == | ||
| Zeile 14: | Zeile 14: | ||
systemctl enable --now apache2 mariadb | systemctl enable --now apache2 mariadb | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
== Datenbank einrichten == | == Datenbank einrichten == | ||
| Zeile 32: | Zeile 20: | ||
mysql -u root | mysql -u root | ||
| − | * Datenbank erstellen | + | * Datenbank und Benutzer erstellen |
create database serververwaltung; | create database serververwaltung; | ||
| + | |||
| + | create user 'webuser'@'localhost' identified by 'webpass'; | ||
| + | grant all privileges on serververwaltung.* to 'webuser'@'localhost'; | ||
| + | flush privileges; | ||
* Datenbank auswählen | * Datenbank auswählen | ||
| Zeile 57: | Zeile 49: | ||
* Webverzeichnis für das Projekt erstellen | * Webverzeichnis für das Projekt erstellen | ||
| − | mkdir -p /var/www/server | + | mkdir -p /var/www/html/server |
* Rechte für Apache setzen | * Rechte für Apache setzen | ||
| − | chown -R www-data:www-data /var/www/server | + | chown -R www-data:www-data /var/www/html/server |
== Datei: db.php == | == Datei: db.php == | ||
* Stellt die Verbindung zur Datenbank her | * Stellt die Verbindung zur Datenbank her | ||
| − | * | + | * Verwendet einen dedizierten Datenbankbenutzer (kein root) |
<pre> | <pre> | ||
<?php | <?php | ||
| − | $conn = new mysqli(" | + | $conn = new mysqli("localhost", "webuser", "webpass", "serververwaltung"); |
if ($conn->connect_error) { | if ($conn->connect_error) { | ||
| Zeile 173: | Zeile 165: | ||
== Ergebnis == | == Ergebnis == | ||
| − | * Teilnehmer verstehen | + | * Teilnehmer verstehen: |
| − | ** Verbindung | + | ** Verbindung PHP ↔ MySQL |
| − | ** | + | ** Daten speichern (INSERT) |
| − | ** | + | ** Daten anzeigen (SELECT) |
Version vom 22. März 2026, 09:57 Uhr
Level 1 – Einfache Serververwaltung (Minimal, konsistent)
Ziel
- Anzeige aller Server aus der Datenbank
- Eintragen neuer Server über ein Formular
- Grundverständnis für PHP und MySQL
Installation
- Pakete installieren und System aktualisieren
apt update && apt install apache2 mariadb-server php php-mysql libapache2-mod-php -y
- Dienste starten und aktivieren
systemctl enable --now apache2 mariadb
Datenbank einrichten
- Anmeldung an MariaDB als root-Benutzer
mysql -u root
- Datenbank und Benutzer erstellen
create database serververwaltung;
create user 'webuser'@'localhost' identified by 'webpass'; grant all privileges on serververwaltung.* to 'webuser'@'localhost'; flush privileges;
- Datenbank auswählen
use serververwaltung;
- Tabelle für Server anlegen
create table server ( id int auto_increment primary key, rechnername varchar(50) not null, ip_adresse varchar(50) not null, betriebssystem varchar(50) not null, festplattenspeicher int not null, ram int not null, hauptdienst varchar(50) not null );
Verzeichnis
- Webverzeichnis für das Projekt erstellen
mkdir -p /var/www/html/server
- Rechte für Apache setzen
chown -R www-data:www-data /var/www/html/server
Datei: db.php
- Stellt die Verbindung zur Datenbank her
- Verwendet einen dedizierten Datenbankbenutzer (kein root)
<?php
$conn = new mysqli("localhost", "webuser", "webpass", "serververwaltung");
if ($conn->connect_error) {
die("Fehler: " . $conn->connect_error);
}
?>
Datei: index.php
- Zeigt alle Server an
- Enthält das Formular zum Eintragen neuer Server
<?php
include 'db.php';
$result = $conn->query("SELECT * FROM server");
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Serververwaltung</title>
</head>
<body>
<h2>Neuen Server eintragen</h2>
<form method="post" action="add.php">
Rechnername: <input type="text" name="rechnername" required><br>
IP-Adresse: <input type="text" name="ip_adresse" required><br>
Betriebssystem: <input type="text" name="betriebssystem" required><br>
Festplatte (GB): <input type="number" name="festplattenspeicher" required><br>
RAM (GB): <input type="number" name="ram" required><br>
Hauptdienst: <input type="text" name="hauptdienst" required><br>
<input type="submit" value="Speichern">
</form>
<h2>Serverliste</h2>
<?php
if ($result->num_rows > 0) {
echo "<table border='1'>";
echo "<tr><th>ID</th><th>Name</th><th>IP</th><th>OS</th><th>Disk</th><th>RAM</th><th>Dienst</th></tr>";
while ($row = $result->fetch_assoc()) {
echo "<tr>";
echo "<td>".$row["id"]."</td>";
echo "<td>".$row["rechnername"]."</td>";
echo "<td>".$row["ip_adresse"]."</td>";
echo "<td>".$row["betriebssystem"]."</td>";
echo "<td>".$row["festplattenspeicher"]."</td>";
echo "<td>".$row["ram"]."</td>";
echo "<td>".$row["hauptdienst"]."</td>";
echo "</tr>";
}
echo "</table>";
} else {
echo "Keine Server vorhanden.";
}
?>
</body>
</html>
Datei: add.php
- Verarbeitet die Formulardaten
- Fügt einen neuen Server in die Datenbank ein
<?php
include 'db.php';
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$rechnername = $_POST["rechnername"];
$ip_adresse = $_POST["ip_adresse"];
$betriebssystem = $_POST["betriebssystem"];
$festplattenspeicher = $_POST["festplattenspeicher"];
$ram = $_POST["ram"];
$hauptdienst = $_POST["hauptdienst"];
$sql = "INSERT INTO server (rechnername, ip_adresse, betriebssystem, festplattenspeicher, ram, hauptdienst)
VALUES ('$rechnername', '$ip_adresse', '$betriebssystem', '$festplattenspeicher', '$ram', '$hauptdienst')";
if ($conn->query($sql) === TRUE) {
header("Location: index.php");
exit;
} else {
echo "Fehler: " . $conn->error;
}
}
?>
Test
- Webseite im Browser aufrufen
http://SERVER-IP/server
- Neuen Server eintragen und speichern
- Eintrag erscheint direkt in der Tabelle
Ergebnis
- Teilnehmer verstehen:
- Verbindung PHP ↔ MySQL
- Daten speichern (INSERT)
- Daten anzeigen (SELECT)