Installation des LAMP Stack mit Apache, MariaDB und PHP
-
Update des Systems
sudo apt update -y
-
Installation Webserver Apache2
- Installation des Apache Webservers mit
sudo apt install -y apache2 apache2-utils
- Prüfe Apache2 Service mit
systemctl status apache2
- Apache2 automatisch beim Booten starten lassen mit
sudo systemctl enable apache2
- Wenn IPTables verwendet werden, den Zugriff auf TCP Port 80 zulassen mit
sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT
- Wenn IPTables verwendet werden, den Zugriff auf TCP Port 443 zulassen mit
sudo iptables -I INPUT -p tcp --dport 443 -j ACCEPT
- Prüfung der Übernahme mit
sudo iptables -L
- bei Verwendung von UFW, den Zugriff auf TCP Port 80 UND 443 gewähren mit
sudo ufw allow in "Apache Full"
- bei Verwendung von UFW, den Zugriff auf TCP Port 80 gewähren mit
sudo ufw allow in "Apache"
- bei Verwendung von UFW, den Zugriff auf TCP Port 443 gewähren mit
sudo ufw allow in "Apache Secure"
- Übernahme der Regeln mit
sudo ufw reload
- anschließende Prüfung des UFW Status mit
sudo ufw status
- Zugriff auf den Webroot dem Apache User gewähren mit
sudo chown www-data:www-data /var/www/html/ -R
- Falls ein Problem mit der Auflösung des lokalen Servernamen und Apache auftritt, kann man dies lösen, indem man in der Apache Konfiguration den „Globalen Servernamen“ localhost hinzufügt. Das geschieht mit
sudo nano /etc/apache2/conf-available/servername.conf
und dem hinzufügen der Zeile
ServerName localhost
- Weitere Steuerbefehle…
- Starte Apache2 Service mit
sudo systemctl start apache2
- Stoppe Apache2 Service mit
sudo systemctl stop apache2
- Naustart Apache2 Service mit
sudo systemctl restart apache2
- Prüfe Apache2 Version mit
apache2 -v
- Installation des Apache Webservers mit
-
Installation Datenbakserver MariaDB
- Installation MariaDB mit
sudo apt install mariadb-server mariadb-client -y
- Aktiviere automatischen Start des MariaDB Service mit
sudo systemctl enable mariadb
- Starte MariaDB Service mit
sudo systemctl start mariadb
- Stoppe MariaDB Service mit
sudo systemctl stop mariadb
- Neustart MariaDB Service mit
sudo systemctl restart mariadb
- Prüfe Status MariaDB Service mit
systemctl status mariadb
- Abfrage der Version mit
mariadb --version
- Der Start des Script erfolgt mit
sudo mysql_secure_installation
- Wizard komplett abschließen, alle Antworten im Regelfall default belassen…
Change the root password? [Y/n] n
…
Remove anonymous users? [Y/n] y
…
Disallow root login remotely? [Y/n] y
…
Remove test database and access to it? [Y/n] y
…
Reload privilege tables now? [Y/n] y
- Der Start des MariaDB Clients, zur Anlage von DB’s etc. erfolgt dann mit
sudo mariadb -u root
und der Eingabe des Passwortes.
Weitere Steuerbefehle:
MariaDB Post Installation Script:
- Installation MariaDB mit
-
Installation PHP Interpreter
- PHP (aktuell v 7.4) und häufig benötigte Module installieren mit
sudo apt install php7.4 libapache2-mod-php7.4 php7.4-mysql php-common php7.4-cli php7.4-common php7.4-json php7.4-opcache php7.4-readline -y
- Apache php Modul aktivieren mit
sudo a2enmod php7.4
- Apache Webserver neu starten mit
sudo systemctl restart apache2
- Prüfung der PHP Version mit
php --version
- Um die Funktion von PHP sicherzustellen, erstellen wir eine Info Datei mit
sudo nano /var/www/html/info.php
- Im Editor folgende Zeile hinzufügen
- Browser öffnen und die URL http://IP_deines_Servers/info.php öffnen
- PHP (aktuell v 7.4) und häufig benötigte Module installieren mit
-
HTTPS mit Self Signed Zertifikat aktivieren
- Aktivieren des Apache SSL Modul mit
sudo a2enmod ssl
- Restart Apache2 Service mit
sudo systemctl restart apache2
- Erstellen des Zertifikates mit
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt
Die Dateien (Zertifikat und privater Schlüssel) sind in /etc/ssl/private/ bzw. /etc/ssl/certs/ abgelegt…
-
Country Name (2 letter code) [XX]:DE State or Province Name (full name) []:Bundesland Locality Name (eg, city) [Default City]:Stadt Organization Name (eg, company) [Default Company Ltd]:Firmenname Organizational Unit Name (eg, section) []:Abteilung Common Name (eg, your name or your server's hostname) []:servername.domain.net Email Address []:webmaster@domain.net