Apache2 Webserver Linux - Netzwerk und Serveradminstration: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 1: | Zeile 1: | ||
==Ziel des Projektes== | ==Ziel des Projektes== | ||
*Wir wollen einen Apache2 Webserver integrieren | *Wir wollen einen Apache2 Webserver integrieren | ||
| − | |||
=Klonen der Maschine= | =Klonen der Maschine= | ||
{| class="wikitable" style="background-color: #f2f2f2;" | {| class="wikitable" style="background-color: #f2f2f2;" | ||
| Zeile 26: | Zeile 25: | ||
;Alternative | ;Alternative | ||
*debian-setup.sh oder rocky-setup.sh | *debian-setup.sh oder rocky-setup.sh | ||
| − | |||
=Zertifikat holen= | =Zertifikat holen= | ||
;holen | ;holen | ||
| Zeile 35: | Zeile 33: | ||
*sudo mv fullchain.pem /etc/ssl/own.crt | *sudo mv fullchain.pem /etc/ssl/own.crt | ||
*sudo mv privkey.pem /etc/ssl/own.key | *sudo mv privkey.pem /etc/ssl/own.key | ||
| − | |||
=Installation= | =Installation= | ||
Apache2 wird zusammen mit PHP und dem Apache-PHP-Modul installiert. | Apache2 wird zusammen mit PHP und dem Apache-PHP-Modul installiert. | ||
*sudo apt update | *sudo apt update | ||
*sudo apt install -y apache2 php libapache2-mod-php | *sudo apt install -y apache2 php libapache2-mod-php | ||
| − | |||
=PHP aktivieren= | =PHP aktivieren= | ||
| − | Das PHP und das SSL Modul | + | Das PHP- und das SSL-Modul werden aktiviert. Damit die Änderung greift, muss Apache anschließend neu gestartet werden. |
*sudo a2enmod php8.4 ssl | *sudo a2enmod php8.4 ssl | ||
| − | + | *sudo systemctl restart apache2 | |
=Webroot= | =Webroot= | ||
Das Webroot-Verzeichnis ist der Standardort für Webseiten unter Apache. | Das Webroot-Verzeichnis ist der Standardort für Webseiten unter Apache. | ||
*ls /var/www/html | *ls /var/www/html | ||
| − | |||
=Dynamische Testseite erstellen= | =Dynamische Testseite erstellen= | ||
Die Datei <code>index.php</code> ersetzt die Apache-Standardseite und gibt Systeminformationen aus. | Die Datei <code>index.php</code> ersetzt die Apache-Standardseite und gibt Systeminformationen aus. | ||
| − | *sudo | + | *sudo vi /var/www/html/index.php |
| − | |||
Inhalt der Datei: | Inhalt der Datei: | ||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
| Zeile 59: | Zeile 53: | ||
$ip = $_SERVER['SERVER_ADDR']; | $ip = $_SERVER['SERVER_ADDR']; | ||
$domain = php_uname('n'); | $domain = php_uname('n'); | ||
| − | |||
// Gateway und Nameserver aus /etc/resolv.conf und ip route auslesen | // Gateway und Nameserver aus /etc/resolv.conf und ip route auslesen | ||
$nameserver = shell_exec("awk '/^nameserver/{print $2; exit}' /etc/resolv.conf"); | $nameserver = shell_exec("awk '/^nameserver/{print $2; exit}' /etc/resolv.conf"); | ||
| Zeile 79: | Zeile 72: | ||
</html> | </html> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| − | |||
=Standardseite löschen= | =Standardseite löschen= | ||
Die Apache-Standardseite wird gelöscht damit die neue PHP-Seite aufgerufen wird. | Die Apache-Standardseite wird gelöscht damit die neue PHP-Seite aufgerufen wird. | ||
*sudo rm /var/www/html/index.html | *sudo rm /var/www/html/index.html | ||
| − | |||
=Konfiguration der Seiten= | =Konfiguration der Seiten= | ||
;Verfügbare Konfigurationen | ;Verfügbare Konfigurationen | ||
| Zeile 97: | Zeile 88: | ||
CustomLog ${APACHE_LOG_DIR}/access.log combined | CustomLog ${APACHE_LOG_DIR}/access.log combined | ||
</VirtualHost> | </VirtualHost> | ||
| − | |||
<VirtualHost *:443> | <VirtualHost *:443> | ||
DocumentRoot /var/www/html | DocumentRoot /var/www/html | ||
| Zeile 107: | Zeile 97: | ||
</VirtualHost> | </VirtualHost> | ||
</pre> | </pre> | ||
| − | |||
=Aktivieren und deaktivieren= | =Aktivieren und deaktivieren= | ||
;deaktivieren der Default Seite | ;deaktivieren der Default Seite | ||
| − | *a2dissite 000-default.conf | + | *sudo a2dissite 000-default.conf |
;aktivieren unserer Seite | ;aktivieren unserer Seite | ||
| − | *a2ensite it.conf | + | *sudo a2ensite it.conf |
| − | + | ;Konfiguration testen und aktivieren | |
| + | *sudo apache2ctl configtest | ||
| + | *sudo systemctl reload apache2 | ||
=Testen= | =Testen= | ||
| − | Im Browser die | + | Im Browser die FQDN des Servers aufrufen. |
;unverschlüsselt | ;unverschlüsselt | ||
*http://www.it2XX.int | *http://www.it2XX.int | ||
;verschlüsselt | ;verschlüsselt | ||
*https://www.it2XX.int | *https://www.it2XX.int | ||
| − | |||
=Handling und Kontrolle= | =Handling und Kontrolle= | ||
*ss -lntp | egrep "80|443" | *ss -lntp | egrep "80|443" | ||
Aktuelle Version vom 19. Juli 2026, 08:17 Uhr
Ziel des Projektes
- Wir wollen einen Apache2 Webserver integrieren
Klonen der Maschine
| Parameter | Wert | Erläuterung |
|---|---|---|
| Netzwerk (NIC) | DMZ | Interface-Zuweisung in VirtualBox |
| IP | 10.88.2XX.11 | Statische IP |
| CIDR | 24 | Classless Inter-Domain Routing Präfixlänge |
| GW | 10.88.2XX.1 | GATEWAY |
| NS | 10.88.2XX.21 | Resolver |
| FQDN | www.it2XX.int | Fully Qualified Domain Name |
| SHORT | www | Short Name |
| DOM | it2XX.int | Domain Name |
- Anpassen des Templates
- Alternative
- debian-setup.sh oder rocky-setup.sh
Zertifikat holen
- holen
- wget https://web.samogo.de/certs/it2XX.int.tgz -O int.tgz
- entpacken
- tar -xvzf int.tgz
- plazieren
- sudo mv fullchain.pem /etc/ssl/own.crt
- sudo mv privkey.pem /etc/ssl/own.key
Installation
Apache2 wird zusammen mit PHP und dem Apache-PHP-Modul installiert.
- sudo apt update
- sudo apt install -y apache2 php libapache2-mod-php
PHP aktivieren
Das PHP- und das SSL-Modul werden aktiviert. Damit die Änderung greift, muss Apache anschließend neu gestartet werden.
- sudo a2enmod php8.4 ssl
- sudo systemctl restart apache2
Webroot
Das Webroot-Verzeichnis ist der Standardort für Webseiten unter Apache.
- ls /var/www/html
Dynamische Testseite erstellen
Die Datei index.php ersetzt die Apache-Standardseite und gibt Systeminformationen aus.
- sudo vi /var/www/html/index.php
Inhalt der Datei:
<?php
$hostname = gethostname();
$ip = $_SERVER['SERVER_ADDR'];
$domain = php_uname('n');
// Gateway und Nameserver aus /etc/resolv.conf und ip route auslesen
$nameserver = shell_exec("awk '/^nameserver/{print $2; exit}' /etc/resolv.conf");
$gateway = shell_exec("ip route | awk '/^default/{print $3; exit}'");
?>
<!DOCTYPE html>
<html>
<head><title>Systeminfo</title></head>
<body>
<h1>Systeminfo</h1>
<table>
<tr><td>Hostname</td><td><?= htmlspecialchars($hostname) ?></td></tr>
<tr><td>IP-Adresse</td><td><?= htmlspecialchars($ip) ?></td></tr>
<tr><td>Domain</td><td><?= htmlspecialchars($domain) ?></td></tr>
<tr><td>Nameserver</td><td><?= htmlspecialchars(trim($nameserver)) ?></td></tr>
<tr><td>Gateway</td><td><?= htmlspecialchars(trim($gateway)) ?></td></tr>
</table>
</body>
</html>
Standardseite löschen
Die Apache-Standardseite wird gelöscht damit die neue PHP-Seite aufgerufen wird.
- sudo rm /var/www/html/index.html
Konfiguration der Seiten
- Verfügbare Konfigurationen
- DIR: /etc/apache2/sites-available/
- Aktivierten Konfigurationen
- DIR: /etc/apache2/sites-enabled
Neue Konfigurationen anlegen
- sudo vi /etc/apache2/sites-available/it.conf
<VirtualHost *:80>
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost *:443>
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/own.crt
SSLCertificateKeyFile /etc/ssl/own.key
</VirtualHost>
Aktivieren und deaktivieren
- deaktivieren der Default Seite
- sudo a2dissite 000-default.conf
- aktivieren unserer Seite
- sudo a2ensite it.conf
- Konfiguration testen und aktivieren
- sudo apache2ctl configtest
- sudo systemctl reload apache2
Testen
Im Browser die FQDN des Servers aufrufen.
- unverschlüsselt
- verschlüsselt
Handling und Kontrolle
- ss -lntp | egrep "80|443"
- systemctl start apache2
- systemctl stop apache2
- systemctl restart apache2
- systemctl reload apache2
- systemctl enable apache2
- systemctl disable apache2
- systemctl status apache2
- journalctl -fu apache2
- journalctl -xu apache2
- tail -f /var/log/apache2/access.log