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

Mittwoch, Dezember 18, 2024

So deaktivieren Sie die Passwortabfrage in Chrome oder Chromium unter Linux

Wenn Sie Chrome oder Chromium unter Linux nutzen, kann es sein, dass Sie regelmäßig zur Eingabe eines Passworts aufgefordert werden. Diese Abfrage entsteht durch die Integration des Browsers mit einem Passwort-Manager wie dem GNOME-Schlüsselbund. Wer dies vermeiden möchte, kann die Einstellungen des Browsers anpassen, um die Passwortabfrage zu deaktivieren.

Hier erfahren Sie, wie das geht:

Schritt 1: Die Desktop-Datei finden
Die Konfigurationsdatei, die angepasst werden muss, befindet sich unter:

/usr/share/applications/chromium-browser.desktop

Diese Datei enthält die Einstellungen für den Start von Chromium.

Schritt 2: Die Datei bearbeiten
Öffnen Sie die Datei mit einem Texteditor Ihrer Wahl. Zum Beispiel:

sudo nano /usr/share/applications/chromium-browser.desktop

Suchen Sie in der Datei die Zeile, die mit Exec= beginnt. Sie sieht in etwa so aus:

Exec=chromium-Browser %U

Schritt 3: Den Parameter hinzufügen
Ergänzen Sie die Zeile um den Parameter –password-store=basic. Das sieht dann so aus:

Exec=chromium-browser --password-store=basic %U

Der Parameter sorgt dafür, dass der Browser die einfache Passwortverwaltung nutzt und nicht auf den Schlüsselbund zugreift. Dadurch entfällt die Passwortabfrage.

Schritt 4: Datei speichern und schließen
Speichern Sie die Änderungen und schließen Sie den Editor. Wenn Sie nano verwenden, drücken Sie dafür STRG + O, dann ENTER, und anschließend STRG + X.

Schritt 5: Änderungen anwenden
Starten Sie Chromium neu, damit die Änderungen wirksam werden. Sie sollten nun keine Passwortabfrage mehr erhalten.

Wichtiger Hinweis
Die Verwendung der –password-store=basic-Option bedeutet, dass gespeicherte Passwörter nicht mehr durch den Schlüsselbund geschützt sind. Stellen Sie sicher, dass diese Änderung Ihren Sicherheitsanforderungen entspricht.

Mit diesen Schritten können Sie die Passwortabfrage in Chrome oder Chromium unter Linux unkompliziert deaktivieren.

Samstag, Juni 15, 2024

Unityhub startet nicht und man kann sich nicht einloggen

Ubuntu 24.04 hat strengere Apparmor-Richtlinien und verweigert Unity Hub-Aktionen

Lösung:

Erstelle eine Datei in /etc/apparmor.d/unityhub

sudo nano /etc/apparmor.d/unityhub

Schreibe folgenden Code hinein:

abi <abi/4.0>,
include <tunables/global>

profile unityhub /opt/unityhub/unityhub-bin flags=(unconfined) {
userns,

# Site-spezifische Ergänzungen und Überschreibungen. Siehe local/README für Details.
include wenn vorhanden <local/unityhub>
}

Starte apparmor neu:

sudo systemctl restart apparmor.service

Somit muss man nicht mit –no-sandbox starten und auch das Login funktioniert ohne Probleme.

Donnerstag, März 28, 2024

How To Install Linux, Apache, MariaDB, PHP (LAMP) auf Debian 11

Einleitung

Für jeden, der sich mit Webentwicklung beschäftigt, ist ein solides Verständnis der Infrastruktur entscheidend. Eine der grundlegendsten und doch mächtigsten Konfigurationen für das Hosting von Webanwendungen ist der LAMP-Stack. LAMP steht für Linux, Apache, MySQL und PHP, und bildet die Basis für viele Websites und Anwendungen im Internet. In diesem Blogbeitrag werden wir einen Schritt-für-Schritt-Leitfaden zur Installation eines LAMP-Stacks auf einem Debian 11-System bereitstellen. Egal, ob du ein erfahrener Entwickler bist oder gerade erst anfängst, dieser Leitfaden wird dir helfen, deine Webentwicklung zum Leben zu erwecken.

Installation von Apache2 und der Firewall

Der Apache-Webserver gehört zu den beliebtesten Webservern der Welt. Er ist gut dokumentiert, hat eine aktive Benutzercommunity und wird seit einem Großteil der Geschichte des Internets weit verbreitet genutzt, was ihn zu einer hervorragenden Wahl für das Hosting einer Website macht.

Beginnen Sie damit, den Paketmanager-Cache zu aktualisieren. Wenn Sie sudo innerhalb dieser Sitzung zum ersten Mal verwenden, werden Sie aufgefordert, das Passwort Ihres Benutzers einzugeben, um zu bestätigen, dass Sie die entsprechenden Berechtigungen zum Verwalten von Systempaketen mit apt haben:

sudo apt update

Dann installieren Sie Apache mit folgendem Befehl:

sudo apt install apache2

Dieser Befehl fordert Sie auf, die Installation von Apache zu bestätigen. Bestätigen Sie, indem Sie Y eingeben und dann die EINGABETASTE drücken. Sobald die Installation abgeschlossen ist, müssen Sie Ihre Firewall-Einstellungen anpassen. Unter der Annahme, dass Sie den Anweisungen zur initialen Servereinrichtung gefolgt sind, um die UFW-Firewall zu installieren und zu aktivieren, stellen Sie sicher, dass Ihre Firewall HTTP- und HTTPS-Verkehr zulässt.

Auf Debian 11 sind in UFW App-Profile enthalten, die Sie verwenden können, um Ihre Firewall-Einstellungen anzupassen. Zeigen Sie die vollständige Liste der Anwendungsprofile an, indem Sie Folgendes ausführen:

sudo ufw app list

Die aufgelisteten WWW-Profile werden verwendet, um die von Webservern verwendeten Ports zu verwalten:

Output
Available applications:
. . .
  WWW
  WWW Cache
  WWW Full
  WWW Secure
. . .

Wenn Sie das WWW-Vollprofil mit “ufw app info” überprüfen, zeigt Ihre Ausgabe, dass es den Verkehr zu den Ports 80 und 443 ermöglicht:

sudo ufw app info "WWW Full"
Output
Profile: WWW Full
Title: Web Server (HTTP,HTTPS)
Description: Web Server (HTTP,HTTPS)

Ports:
  80,443/tcp

Als nächstes erlauben Sie eingehenden HTTP- und HTTPS-Verkehr für dieses Profil:

sudo ufw allow in "WWW Full"

Sie können überprüfen, ob alles wie geplant funktioniert hat, indem Sie die öffentliche IP-Adresse Ihres Servers in Ihrem Webbrowser aufrufen:

http://ihre_server_ip

Das wird die Standard-Debian-11-Apache-Webseite zurückgeben, die zu Informations- und Testzwecken vorhanden ist:

BILD

Wenn Ihr Browser diese Seite zurückgibt, ist Ihr Webserver nun korrekt installiert und durch Ihre Firewall erreichbar.

Wie man die öffentliche IP-Adresse Ihres Servers findet

Wenn Sie nicht wissen, was die öffentliche IP-Adresse Ihres Servers ist, gibt es verschiedene Möglichkeiten, sie zu finden. Normalerweise ist dies die Adresse, die Sie verwenden, um sich über SSH mit Ihrem Server zu verbinden.

Es gibt einige verschiedene Möglichkeiten, dies von der Befehlszeile aus zu tun. Zuerst könnten Sie die iproute2-Werkzeuge verwenden, um Ihre IP-Adresse abzurufen, indem Sie Folgendes ausführen:

ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's//.*$//'

Dies wird zwei oder drei Zeilen zurückgeben. Alle sind korrekte Adressen, aber Ihr Computer kann möglicherweise nur eine davon verwenden. Fühlen Sie sich also frei, jede auszuprobieren.

Eine alternative Methode besteht darin, das curl-Dienstprogramm zu verwenden, um einen externen Dienst zu kontaktieren, der Ihnen mitteilt, wie er Ihren Server sieht. Sie können den folgenden Befehl ausführen und einen bestimmten Server fragen, welche IP-Adresse er sieht:

curl http://sebastian-wulf.de

Welche Methode Sie auch bevorzugen, geben Sie Ihre IP-Adresse in den Webbrowser ein, um zu überprüfen, ob Ihr Server die Standard-Apache-Seite ausführt.