Infosite von Joe Brandes
Eine Website von Trainer Joe Brandes. Infos zu IT-Seminaren von A bis Z.
Das klassische PCS Zertifikat
Von der Hardware und Netzwerktechnik bis zu den den Betriebssystemen Windows, Windows Server und Linux
Ich biete diese Module an!
Zertifikat CMSOD
Module Basiszertifikat
Module Specialist
Ready for Tech Deep Dives...
Wir starten mit der Wahl der fraglichen Linux-Distribution und Technik für das Verteilen der Technik an Trainees.
Ich nutze seit vielen Jahren Debian für alle Webtechnik-Umgebungen und Services. Und da man hinsichtlich der LTS-Unterstützungen mit aktuell 5 Jahren (https://wiki.debian.org/LTS) deutlich hinter den 10 Jahren eines Ubuntu Server hinterher ist, muss der geneigte Debian Administrator und Nutzer eben doch "ab und zu" frische Installationen erstellen, wenn man nicht zum kostenpflichtigen Freeixan ELTS (https://www.freexian.com/lts/debian/) greifen möchte.
Als Trainer in diesen Bereichen habe ich mit entsprechenden System-Auffrischungen keinerlei Probleme und schätze die technische Umsetzung jedes Mal wieder auf das Neue.
Wir erstellen uns also ein klassisches LAMP-System. Die Standard-PHP-Version für Debian 12 Bookworm ist PHP 8.2. Diese Version wird seitens der PHP Entwicklergemeinschaft bis zum 31. Dezember 2026 als Standard-Packages geplegt. Danach stehen unter Debian - wie auch schon aktuell - 3rd-Party Repos mit neueren PHP-Versionen 8.3 (und aktuell/später auch 8.4) zur Verfügung (Beispielhafte Anleitung mit Sury Packages: https://php.watch/articles/php-8.3-install-upgrade-on-debian-ubuntu). Zum Abschluss hier noch ein Link mit einer Gegenüberstellung von PHP als Apache Mod vs. php-fpm (Fast CGI process manager) auf Reddit. In der folgenden Anleitung installiere ich das Apache mod_php. Die FPM Variante hat zusätzliche Konfigurationen, was einen Unterschied zu meinen Windows-basierten XAMPP-CMSOD Umgebungen darstellt.
In vielen Trainingsumgebung habe ich Zugriff auf Virtualisierungen mit Hyper-V für die Trainees. Daher greife ich hier gerne zum Hyper-V-Manager und erstelle die gewünschten Maschinen/VMs. Die VMs werden mit Standard-Konfigurationen erzeugt (z.B. Generation 2, kein Secure Boot, Default-Switch, ...) und dann (ohne Snapshots) exportiert und als ZIPs komprimiert und verteilt.
Authentifizierung: für meine Systeme entscheide ich mich häufig für folgende Authentifizierung: User seminar / Password seminar
Wir beginnen nach einem Fresh Install mit Aktualisierungen und Basis-Installationen von Tools und Grunddiensten. Manche Software - wie der openSSH Server - sind bereits durch die Basisinstallation (ca. 127 Packages) erzeugt worden.
Basispakete
Wir installieren die nötigen Grundpakete - eine Basissoftwareausstattung:
sudo apt update sudo apt upgrade sudo apt install vim mc tree git curl wget fzf ripgrep ranger bat openssh-server -y # tools sudo apt install lsb-release ca-certificates apt-transport-https software-properties-common gnupg2 -y # system sudo apt update && sudo apt upgrade -y # update
Und natürlich sind ein paar der Pakete auch persönlich geprägt.
PHP - bei frischen Installationen ist kein PHP installiert. Ansonsten einfach checken:
dpkg -l | grep php
Für weitere Analytik kann man mal schnell die verfügbar PHP Version checken:
apt search php-cli (Ausgabe:)Sortierung… Fertig Volltextsuche… Fertig php-cli/stable 2:8.2+93 all command-line interpreter for the PHP scripting language (default)
Die Versionen können natürlich abweichen.
PHP Version 8.2: Wir installieren also die PHP Version 8.2 und legen jetzt los und installieren die gewünschte PHP Basistechnik, womit wir auch gleich den Webserver Apache2 und das libapache2-mod-php8.2 installiert bekommen.
sudo apt install php8.2
Wir checken schnell die PHP Version und den Status des Apache2 Webservers:
php --version (Ausgabe:) PHP 8.2.26 (cli) (built: Nov 25 2024 17:21:51) (NTS) Copyright (c) The PHP Group Zend Engine v4.2.26, Copyright (c) Zend Technologies with Zend OPcache v8.2.26, Copyright (c), by Zend Technologies sudo systemctl status apache2.service
Tipp: die Nachricht des Webservers mit Hinweis AH0058 kann mit der Zeile ServerName hv-debcmsodsrv in Konfiguration /etc/apache2/apache2.conf korrigiert werden.
ServerName hv-debcmsodsrv
/etc/apache2/apache2.conf
Bevor wir den Apache2 Webserver restarten|reloaden sollten wir die Konfiguration prüfen:
sudo apachectl configtest sudo systemctl restart apache2.service
Wir sollten für den configtest immer ein "OK" zurückbekommen.
PHP-Module installieren: Die PHP Technik muss vor Allem für die sehr anspruchsvolle TYPO3 Entwicklungsumgebung vervollständigt werden. Eine Orientierung und Anleitung kann man z. B. unter TYPO3 System Requirements analysieren.
sudo apt install php8.2 php8.2-mysql libapache2-mod-php8.2 php8.2-curl php8.2-gd php8.2-mbstring \ php8.2-xml php8.2-soap php8.2-intl php8.2-zip curl php-pear
Jetzt gleich noch ein paar Apache2 Module aktivieren und den Apache2 Server neu starten.
sudo a2enmod expires sudo a2enmod rewrite sudo a2enmod headers sudo systemctl restart apache2.service
PHP-Konfiguration: Als nächstes passen wir - wieder wegen TYPO3 - ein paar PHP-Konfigurationen an: : /etc/php/8.2/apache2/php.ini
/etc/php/8.2/apache2/php.ini
# memory_limit set to at least 128M -> 512M memory_limit = 512M # max_execution_time set to at least 30 -> 240 max_execution_time = 240 # max_input_vars set to at least 1500 (von 1000 und auskommentiert) max_input_vars = 1500 # und ich schlage noch vor post_max_size = 20M (statt 8M) upload_max_filesize = 20M (statt 2M)
Bitte alle Konfigurationen mittels eines kleinen phpinfo-Skripts checken: /var/www/html/phpinfo.php
/var/www/html/phpinfo.php
<?php phpinfo(); ?>
Die Ausgaben der PHPInfo bitte sauber überprüfen und mit Strg + F durchsuchen / checken.
Wir wollen bei den Zertifikaten für die SSL (https) Umsetzungen auf selbstsignierte und selbst ausgestellte Zertifikate zurückgreifen. SSL-Zertifikate mit Let's Encrypt oder sogar vollständigen Enterprise Zertifikaten sprengen diesen Rahmen - wir wollen einfach https nutzen. Und natürlich werden sich die Browser beschweren.
SSL-Modul aktivieren und SSL Zertifikat
sudo apt install ssl-cert # oder openssl - normaly already installed: libssl1.1, openssl, ssl-cert sudo a2enmod ssl sudo systemctl restart apache2 # create certificate sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/ssl/private/localhost.key -out /etc/ssl/certs/localhost.crt # you may leave all Options untouched! Checking: # sudo ls -al /etc/ssl/private/ # sudo ls -al /etc/ssl/certs/l*
Zertifikate konfigurieren für localhost
sudo cp /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/default-ssl.conf.bak sudo vim /etc/apache2/sites-available/default-ssl.conf
Konfigurationen bearbeiten - Zertifikate verlinken
.... SSLEngine on SSLCertificateFile /etc/ssl/certs/localhost.crt SSLCertificateKeyFile /etc/ssl/private/localhost.key .....
SSL Site aktivieren und testen
sudo a2ensite default-ssl sudo apachectl configtest sudo systemctl restart apache2 # Testing: https: // ip-adress OR https: // servername
Jetzt haben wir Funktionalität und Vorlagen für weitere Sites.
Wir installieren und konfigurieren den Datenbankserver MariaDB. Zur Erstinstallation gehört auch das Setzen des MariaDB-root Password und die Grundkonfiguration des Servers.
sudo apt install mariadb-server mariadb-client sudo mysql_secure_installation
Authentifizierung: für meine Systeme entscheide ich mich häufig für folgende Authentifizierung: User root / Password seminar
Login Test via Shell mit CLI Tool mysql
mysql -u root -h localhost -p # Beispiel für neue TYPO3 DB - Anm.: WordPress möchte gerne utf8mb4_unicode_ci CREATE DATABASE typo3_12 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
Jetzt sollten wir noch ein paar grundsätzliche Konfigurationen (Ordnerstrukturen, VHosts) und Installationen (siehe Grafiktool) vornehmen.
Graphicsmagick installieren
sudo apt install graphicsmagick
Beispielhafte Webserver-Ordner-Struktur mit Basispfaden /var/www/html (Projekte) und /var/www/typo3_src (TYPO3 Sources)
/var/www/html
/var/www/typo3_src
/var/www ├── html │ ├── hosting │ ├── index.html │ ├── phpinfo.php │ ├── testing │ └── typo3 │ ├── typo3-12.lamp82 │ ├── typo3-13.lamp82 │ ├── typo3-demo.lamp82 │ └── typo3-introduction.lamp82 └── typo3_src
VHost Beispiel erstellen:
sudo vim /etc/apache2/sites-available/typo3-12.conf
Auszug aus der typo3-12.conf Site Configuration - Kommentare ausgeblendet:
<VirtualHost *:80> ServerAdmin webmaster@hv-debcmsodsrv ServerName typo3-12.lamp82 ServerAlias www.typo3-12.lamp82 DocumentRoot /var/www/html/typo3/typo3-12.lamp82 <Directory /var/www/html/typo3/typo3-12.lamp82/> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> LogLevel warn ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> <IfModule mod_ssl.c> <VirtualHost _default_:443> ServerAdmin webmaster@hv-debcmsodsrv ServerName typo3-12.lamp82 ServerAlias www.typo3-12.lamp82 DocumentRoot /var/www/html/typo3/typo3-12.lamp82 <Directory /var/www/html/typo3/typo3-12.lamp82/> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined SSLEngine on SSLCertificateFile /etc/ssl/certs/localhost.crt SSLCertificateKeyFile /etc/ssl/private/localhost.key <FilesMatch "\.(cgi|shtml|phtml|php)$"> SSLOptions +StdEnvVars </FilesMatch> <Directory /usr/lib/cgi-bin> SSLOptions +StdEnvVars </Directory> </VirtualHost> </IfModule>
Im Grunde wurde einfach die Standard-SSL-Hostconfig für localhost kopiert und auf das gewünschte Projekt angepast. Danach immer nur die Pfade und URL anpassen. Das ist in VIm einfach per :%s/typo3-12/typo3-13/g gewünschte Stellen ersetzen.
:%s/typo3-12/typo3-13/g
SSL-Site aktivieren - natürlich muss die Site noch aktiviert werden:
sudo a2ensite typo3-12 sudo systemctl reload apache2.service
HOSTS: In den meisten einfachen Testumgebungen haben wir kein DNS für unsere Testdomains (hier: typo3-12.conf). Also bitte nicht vergessen auf der Client-Seite die HOSTS-Datei anzupassen. Bei einem Windows System ist die Datei unter C:\Windows\System32\Drivers\etc/hosts zu finden.
C:\Windows\System32\Drivers\etc/hosts
# HOSTS auf Client # Die TLD .lamp82 steht hier für Entwicklungen mit PHP 8.2 172.29.149.202 hv-debcmsodsrv hv-debcmsodsrv.lamp82 # T3-Tests: 172.29.149.202 typo3-12.lamp82 www.typo3-12.lamp82
Hier kann man IP-Adressen eines Hyper-V Default-Switch erkennen. In langfristig genutzten Umgebungen bitte unbedingt die VM Netzwerktechnik anpassen, da der Default-Switch gerne das IP-Subnetz ändert!
Sie finden auf dieser Seite - als auch auf meiner privaten Visitenkarte joe-brandes.de einige Hintergrundinformationen zu mir und meinem Background.Natürlich stellt die IT einen Schwerpunkt in meinem Leben dar - aber eben nicht nur ...
Private Visitenkarte / Technik: HTML & CSS joe-brandes.de
Ich erarbeite und konzipiere seit über 30 Jahren IT-Seminare und -Konzepte. Hierfür stehen der "PC-Systembetreuer / FITSN" und der "CMS Online Designer / CMSOD". Ich stehe Ihnen gerne als Ansprechpartner für Ihre Fragen rund um diese und andere IT-Themen zur Verfügung!
BECSS Visitenkarte / Technik: HTML & CSS becss.de
Wer einmal zum Snookerqueue gegriffen hat, der wird es wohl nicht wieder weglegen. Und ich spiele auch immer wieder gerne eine Partie Billard mit den Kumpels und Vereinskameraden. Der Verein freut sich über jeden, der einmal in unserem schicken Vereinsheim vorbeischauen möchte.
Billard Sport BS / nicht mehr von mir betreut billard-sport-braunschweig.de