Ubuntu LTS 20.04 – Installation LAMP Stack

(Dieser Beitrag wurda am 18. Februar 2021 aktualisiert.)

Installation des LAMP Stack mit Apache, MariaDB und PHP

  1. Update des Systems

    sudo apt update -y
  2. 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
  3. 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
    • Weitere Steuerbefehle:

    • 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
    • MariaDB Post Installation Script:

    • 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.

  4. 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

  5. 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