Apache Webserver (LAMP)

Webserver (LAMP) wird auf Debian installiert. LAMP ist ein Kurzwort für Linux Apache MySQL PHP
Die 3 Dienste Apache, MySQL und PHP werden auf Linux Webserver gebraucht um fast alle WEB-Anwendungen zu installieren.

Punkt
Wir gehen davon aus, dass Linux Debian 12 mit Standardoptionen ohne grafische Oberfläche installiert ist. Es werden zuerst Apache Pakete installiert. Dienst startet automatisch.

 

# apt-get install apache2 apache2-utils

 

Punkt
Wir überprüfen noch die Apache Version.

# apache2 -v

 

Punkt
MySQL Pakete werden installiert. Wir installieren die MariaDB Datenbank. Sollten wir doch ein Bedürfnis MySQL zu installieren, müssen wir zuerst entsprechendes MySQL Repository einfügen. Dienst startet automatisch.

 

# apt-get -y install mariadb-server mariadb-client mariadb-common
Punkt
Nach der Installation des Dienstes sollten wir die Datenbank absichern, einfach den folgenden Befehl ausführen. Hier hat man die Möglichkeit das root Passwort der MariaDB zu setzen und einiger Einstellungen nach Bedarf anzupassen.

 

# mysql_secure_installation

 

Das sind meistens meine Optionen bei der Absicherung der Datenbank. Das root Passwort der DB wird selbstverständlich gesetzt, ich nehme es immer beim Tests das Passwort secret+-

 

Switch to unix_socket authentication [Y/n] n
Change the root password? [Y/n] Y
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

 

Standardmäßig läuft MariaDB auf Port 3306. Wir können dies mit dem folgenden Befehl überprüfen

 

# ss -antpl | grep mariadb
Punkt
Mit MariaDB kann man sich mit folgendem Befehl anmelden. Nach der Eingabe des Passwortes bekommt man ein MariaDB Prompt Zeichen.

 

# mysql -u root -p

 

Punkt
Jetzt können wir alle möglichen Datenbankbefehle verwenden. Mit dem folgenden Befehl bekommen wir Information zu der Version der Datenbank.

 

MariaDB [(none)]> SELECT VERSION();
Punkt
Root Passwort-Änderung in MariaDB ab Version 10.4 kann man mit folgendem Befehl ausführen. Wir müssen auf dem MariaDB Server eingeloggt sein.

 

# MariaDB [(none)]> ALTER USER 'root'@'localhost' IDENTIFIED BY 'YouNewPassword';

 

In älteren Versionen funktionierte das noch mit dem Befehl.

# MariaDB [(none)]> UPDATE mysql.user SET Password=PASSWORD('YouNewPassword') WHERE User='root';
Punkt
Jetzt müssen wir noch PHP installieren. PHP ist eine Skriptsprachen, die Serverseitig ausgeführt wird. PHP besteht aus verschiedenen Modulen. Welche Module installiert werden, ist auch von der PHP Anwendung abhängig. Häufig werden die folgende Module installiert.

 

# apt-get install php libapache2-mod-php php-cli php-mysql php-zip php-curl php-xml

 

Punkt
Für anspruchsvollere Anwendung kann man z.B. die folgenden PHP-Module installieren

 

# apt install php php-curl php-cli php-mysql php-gd php-common php-xml php-json php-intl php-pear php-imagick php-dev php-common php-mbstring php-zip php-soap php-bz2 php-bcmath php-gmp php-apcu
Punkt
Installierte PHP Module kann unter Debian wie folgt auflisten. Die PHP-Version wird auch angezeigt.

 

# apt list --installed | grep php
Punkt
Sollten wir einen Bedarf haben, eine andere PHP Version zu installieren, müssen wir zuerst einen PHP-Repository einfügen z.B. SURY. SURY ist ein Debian-basiertes PHP-Repository eines Drittanbieters. Den GPG Key sollte man auch aus dem Repository runterladen.

 

# echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list
# wget -qO - https://packages.sury.org/php/apt.gpg | apt-key add -
Punkt
Als Nächstes machen wir einen update apt update. Sollten Meldungen kommen, dass der Schlüssel in einer veralteten Form ist, dann nutzen Sie den folgenden Befehl.

 

# wget -qO- https://packages.sury.org/php/apt.gpg | gpg --dearmor | tee /etc/apt/trusted.gpg.d/apt.gpg && clear
Punkt
Jetzt können wir andere php Versionen installieren, und zwar mit apt installl<VersionNummer>, z.B. php 7.4.

 

# apt install php7.4
Punkt
Es wurde eine andere PHP Version installiert, aber die ist noch nicht aktiv, deshalb sollten wir den folgenden Befehl nutzen und die PHP-Version zu wechseln.

 

# update-alternatives --config php
Punkt
Es kommt ein ähnliches Menü, einfach die gewünschte PHP-Version auswählen und fertig.

 

Es gibt 5 Auswahlmöglichkeiten für die Alternative php (welche /usr/bin/php bereitstellen).
  Auswahl      Pfad                  Priorität Status
------------------------------------------------------------
* 0            /usr/bin/php.default   100       automatischer Modus
  1            /usr/bin/php.default   100       manueller Modus
  2            /usr/bin/php7.4        74        manueller Modus
  3            /usr/bin/php8.0        80        manueller Modus
  4            /usr/bin/php8.2        82        manueller Modus
  5            /usr/bin/php8.3        83        manueller Modus
Drücken Sie die Eingabetaste, um die aktuelle Wahl[*] beizubehalten,
oder geben Sie die Auswahlnummer ein:
Punkt
Mit dem Befehl php -v sehen wir, welche PHP-Version gerade aktiv ist. Die Version arbeitet allerdings noch nicht mit Apache zusammen.

 

# php -v
Punkt
Um die gewünschte PHP-Version in Apache zu nutzen, müssen wir zuerst die aktuelle PHP-Version in Apache deaktivieren, danach die gewünschte PHP-Version aktivieren und selbstverständlich den Apache-Dienst neu starten. Hier ein Beispiel, wir gehen in Apache von PHP-Version 8.2 zurück nach Version 7.4

 

# a2dismod php8.2
# a2enmod php7.4
# systemctl restart apache2
Punkt
In der Datei /etc/apache2/mods-enabled/dir.conf ist die Reihenfolge der Index-Dateien definiert, die aufgerufen werden. Die kann man nach eigene Bedürfnisse ändern.
 
# nano /etc/apache2/mods-enabled/dir.conf
Punkt
In der Datei /etc/apache2/mods-enabled/dir.conf ist die Reihenfolge der Index-Dateien definiert, die aufgerufen werden. Die kann man nach eigene Bedürfnisse ändern.

 

# nano /etc/apache2/mods-enabled/dir.conf

 

Die Datei sieht so ähnlich aus.

 

DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
Punkt
Es gibt eine einfache Funktion, um die PHP Informationen unter Apache auszugeben. Das ist die phpinfo()";
Unter Debian im Ordner /var/www/html erstellen wir eine Datei mit dem Namen index.php

 

# nano /var/www/html/index.php

 

Die Datei wird mit folgendem Inhalt gefüllt und gespeichert

 

<?php
    phpinfo();
?>
Punkt
Jetzt können wir in beliebigem Browser die Seite http://<IP-Adresse-des-Servers>/index.php aufrufen.
Es werden alle mögliche Informationen zu PHP in Apache ausgegeben und auch die PHP-Version, die eingesetzt ist.