Apache2 Webserver Linux - Netzwerk und Serveradminstration: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(→Testen) |
|||
| (23 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| 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;" | ||
! Parameter !! Wert !! Erläuterung | ! Parameter !! Wert !! Erläuterung | ||
| Zeile 29: | Zeile 7: | ||
| '''Netzwerk (NIC)''' || DMZ || Interface-Zuweisung in VirtualBox | | '''Netzwerk (NIC)''' || DMZ || Interface-Zuweisung in VirtualBox | ||
|- | |- | ||
| − | | '''IP''' || 10.88.2XX. | + | | '''IP''' || 10.88.2XX.11 || Statische IP |
|- | |- | ||
| '''CIDR''' || 24 || Classless Inter-Domain Routing Präfixlänge | | '''CIDR''' || 24 || Classless Inter-Domain Routing Präfixlänge | ||
| Zeile 45: | Zeile 23: | ||
;Anpassen des Templates | ;Anpassen des Templates | ||
*[[Anpassen des Debian Templates]] | *[[Anpassen des Debian 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= | =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 install -y apache2 php libapache2-mod-php | *sudo apt install -y apache2 php libapache2-mod-php | ||
| − | |||
=PHP aktivieren= | =PHP aktivieren= | ||
| − | Das PHP-Modul | + | Das PHP- und das SSL-Modul werden aktiviert. Damit die Änderung greift, muss Apache anschließend neu gestartet werden. |
| − | *a2enmod php8.4 | + | *sudo a2enmod php8.4 ssl |
| − | *systemctl | + | *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 72: | 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 92: | Zeile 72: | ||
</html> | </html> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| − | + | =Standardseite löschen= | |
| − | =Standardseite | + | Die Apache-Standardseite wird gelöscht damit die neue PHP-Seite aufgerufen wird. |
| − | Die Apache-Standardseite wird | ||
*sudo rm /var/www/html/index.html | *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 | ||
| + | <pre> | ||
| + | <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> | ||
| + | </pre> | ||
| + | =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= | =Testen= | ||
| − | Im Browser die | + | Im Browser die FQDN des Servers aufrufen. |
| + | ;unverschlüsselt | ||
*http://www.it2XX.int | *http://www.it2XX.int | ||
| − | =Handling= | + | ;verschlüsselt |
| + | *https://www.it2XX.int | ||
| + | =Handling und Kontrolle= | ||
| + | *ss -lntp | egrep "80|443" | ||
*systemctl start apache2 | *systemctl start apache2 | ||
*systemctl stop apache2 | *systemctl stop apache2 | ||
| Zeile 110: | Zeile 122: | ||
*journalctl -fu apache2 | *journalctl -fu apache2 | ||
*journalctl -xu apache2 | *journalctl -xu apache2 | ||
| + | *tail -f /var/log/apache2/access.log | ||
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