Mittwoch, Februar 19, 2025

LAMP-Stack unter Arch Linux installieren

Diese Anleitung beschreibt die Installation eines LAMP-Stacks (Linux, Apache, MariaDB, PHP) auf Arch Linux unter Berücksichtigung der Besonderheiten bei der Konfiguration von Apache mit PHP.

1. System aktualisieren

Zunächst wird das System aktualisiert:

sudo pacman -Syu

2. Apache installieren und konfigurieren

Apache dient als Webserver zur Bereitstellung von Webseiten.

Installation

sudo pacman -S apache

Apache als Dienst starten und aktivieren

sudo systemctl start httpd
sudo systemctl enable httpd

Apache-Konfiguration anpassen

Öffne die Datei `/etc/httpd/conf/httpd.conf`:

sudo nano /etc/httpd/conf/httpd.conf

Deaktiviere das threaded MPM-Modul (`mpm_event`) und aktiviere das kompatible Prefork-Modul:

# LoadModule mpm_event_module modules/mod_mpm_event.so
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

Speichere die Datei und schließe den Editor.

Berechtigungen für den Web-Ordner `/srv/http` setzen

Um einem Benutzer das Erstellen von Dateien und Ordnern ohne `sudo` zu ermöglichen, führe folgende Befehle aus:

sudo chown -R $USER:http /srv/http
sudo chmod -R 775 /srv/http

Damit der Benutzer dauerhaft Zugriff hat, füge ihn der Gruppe `http` hinzu:

sudo usermod -aG http $USER

Anschließend abmelden und erneut anmelden, damit die Gruppenänderung wirksam wird.

3. PHP installieren und konfigurieren

PHP wird für die Verarbeitung dynamischer Webinhalte verwendet.

Installation

sudo pacman -S php php-apache php-mysqli

PHP in Apache einbinden

Bearbeite die Datei `/etc/httpd/conf/httpd.conf` erneut und füge folgende Zeilen hinzu:

LoadModule php_module modules/libphp.so
AddHandler php-script .php
DirectoryIndex index.php index.html

Speichere die Datei.

Test der PHP-Installation

Erstelle eine Testseite:

echo "<?php phpinfo(); ?>" > /srv/http/info.php

Starte Apache neu:

sudo systemctl restart httpd

Öffne nun im Browser:

http://localhost/info.php

Wenn die PHP-Informationsseite angezeigt wird, war die Installation erfolgreich.

4. MariaDB installieren und konfigurieren

MariaDB ist die relationale Datenbank für den LAMP-Stack.

Installation

sudo pacman -S mariadb mariadb-clients

Datenbank initialisieren

sudo mariadb-install-db --user=mysql --basedir=/usr --datadir=/var/lib/mysql

MariaDB als Dienst starten und aktivieren

sudo systemctl start mariadb
sudo systemctl enable mariadb

Sicherheit konfigurieren

Das Sicherheits-Skript ausführen:

sudo mysql_secure_installation

Folge den Anweisungen, um das Root-Passwort zu setzen und unsichere Standardkonfigurationen zu entfernen.

MySQL-Login testen

Um die Verbindung zur MariaDB-Datenbank zu testen, nutze den folgenden Befehl:

sudo mysql -u root -p

Gib anschließend das Root-Passwort ein, das du während der Konfiguration gesetzt hast. Wenn du die MariaDB-Konsole siehst, funktioniert der Login erfolgreich.

Benutzer für phpMyAdmin erstellen

Um einen neuen Benutzer zu erstellen, der über phpMyAdmin neue Datenbanken anlegen kann, führe folgende Befehle aus:

sudo mysql -u root -p

Melde dich mit dem Root-Passwort an und gib dann folgende SQL-Befehle ein:

CREATE USER 'phpmyadmin_user'@'localhost' IDENTIFIED BY 'dein_passwort';
GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin_user'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;

Hinweis: Ersetze `’dein_passwort’` durch ein sicheres Passwort.

5. phpMyAdmin installieren und konfigurieren

phpMyAdmin ist eine Weboberfläche zur Verwaltung von MariaDB.

Installation

sudo pacman -S phpmyadmin

Zusätzliche PHP-Erweiterungen aktivieren

Aktiviere die Erweiterung `mysqli`, indem du folgende Zeile in der Datei `/etc/php/php.ini` entkommentierst:

extension=mysqli

Cookie-Verschlüsselung konfigurieren

Bearbeite die Konfigurationsdatei von phpMyAdmin (`/etc/webapps/phpmyadmin/config.inc.php`) und setze einen sicheren Schlüssel für die Cookie-Verschlüsselung:

$cfg['blowfish_secret'] = 'EinLangerUndSichererSchlüssel123!@#';

Ersetze `’EinLangerUndSichererSchlüssel123!@#’` durch einen eigenen, zufällig generierten Schlüssel. Dieser Schlüssel sollte mindestens 32 Zeichen lang sein.

Konfiguration in Apache

Öffne die Apache-Konfigurationsdatei:

sudo nano /etc/httpd/conf/httpd.conf

Füge folgende Zeilen hinzu:

Alias /phpmyadmin "/usr/share/webapps/phpMyAdmin"

<Directory "/usr/share/webapps/phpMyAdmin">
    Options FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

Speichere die Datei und starte Apache neu:

sudo systemctl restart httpd

Zugriff auf phpMyAdmin

Öffne im Browser:

http://localhost/phpmyadmin

Melde dich mit dem Benutzer `phpmyadmin_user` und dem gewählten Passwort an.

6. Firewall konfigurieren (optional)

Falls die Firewall `ufw` verwendet wird, müssen die Ports 80 und 443 freigegeben werden:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw reload

Kommentar hinzufügen

Die Felder Name und Kommentar sind Pflichtfelder.