Leap 16.0 installiert - Webserver für lokale Projekt vergessen zu installieren

Guten Tag,

wie installiere ich das Webserverpaket nach?

Ich habe leider vergessen es, bei der Installation mit auszuwählen, kann aber ohne das Paket bestimmte Javascript-Funktionen im Browser nicht ausführen, die Localhost benötigten.

Cockpit habe ich installiert, und das läuft auch, falls es für die Installation benötigt wird.

Sind folgende Kommandos korrekt (so recherchiert), und fehlt ggf. noch etwas?

sudo zypper install apache2 apache2-mod_php8
sudo systemctl enable --now apache2

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

Fr. Grüße

Dafür gibt es ein Pattern Web and LAMP server. Kann man mit z.B. Myrlyn leicht finden und installieren.

1 Like

Die Installation hat funktioniert, aber wenn ich einen File im Browser aufrufe, erscheint immer “Error 403 Zugriff verweigert!”, z. b. http://localhost/index.html und http://127.0.0.1/index.html.

Apache is active, running, und der User hat alle Rechts auf htdocs.

Jemand eine Idee, wo der Hund begraben ist?

Das hat nichts damit zu tun. Das Apache Prozess muß lesen können, nicht ein willküriger User.

Ich habe User und Gruppe geändert:

sudo chown -R wwwrun:www /srv/www/htdocs

Kein Unterschied.

Wenn ich mich nicht irre:
Eigentümer von …/htdocs und index.html ist root, erst die darunterliegenden Verzeichnisse gehören wwwrun/www.
Leg doch mal eine phpinfo.php in das htdocs-Verzeichnis und rufe das Script auf.

Moin,

hier ein paar Grundlagen:

Die Verweise auf YaST solltest du mit Leap 16.0 allerdings eher ignorieren. :wink:

Aktueller Stand

$ namei -l /srv/www/htdocs
f: /srv/www/htdocs
drwxr-xr-x root root /
dr-xr-xr-x root root srv
drwxr-xr-x root root www
drwxr-xr-x root root htdocs
# Alle Files in htdocs gehören user1:user1, der einzige Benutzer auf dem System.

# localhost:/var/log/apache2
$ tail error_log 
[Tue May 05 11:50:52.591990 2026] [core:error] [pid 13376:tid 13376] (13)Permission denied: [client 127.0.0.1:54446] AH00035: access to /phpinfo.php denied (filesystem path '/srv/www/htdocs/phpinfo.php') because search permissions are missing on a component of the path

Ich habe diesen und diesen Artikel gefunden, komme aber dennoch nicht weiter.

Ich habe gesehen, dass der File /etc/hostname leer ist.

Auf einem anderen Leap-16.0-Rechner, bei dem im Zuge der Installation ein erster Benutzer mit Root-Rechten und ein Root-Passwort anglegt wurde, gibt es keine Probleme.

Bei dem Rechner mit den Problemen wurde der erste Benutzer erst nach der Installation als normaler Benutzer ohne Root-Rechte angelegt . Vielleicht hakt es deswegen irgendwo.

Auf dem fehlerfrei arbeitenden Rechner zeigt namei -l /srv/www/htdocs das gleiche Ergebnis wie auf dem mit den Fehlern, und es liegen Files von zwei weiteren Benutzern in htdocs, die im Browser aufgerufen werden können.

Ich habe mal das Verzeichnis /etc/apache2 mit Kompare verglichen, und es wurde keine Unterschiede angezeigt.

-rw-r--r--. 1 user1 user1 72  5. Mai 12:56 index-user1.html
-rw-r--r--. 1 user1 user1 33  5. Mai 12:57 index-user1.php
-rw-r--r--. 1 user2 user2 70  5. Mai 13:28 index-user2.html
-rw-r--r--. 1 user1 user1 33  5. Mai 12:58 phpinfo.php

Nur so nebenbei: hat es was mot SELinux zu tun?

Ich suche, hcvv, ich suche.

Ich habe außer dem bereits existierenden, nach der Installation angelegten Benutzer user1 (ohne Root-Rechte), dem fast alle Files in htdocs gehören, einen weiteren Benutzer mit normalen Rechten und ein weiteren Benutzer mit Root-Rechten angelegt und für diese zwei weitere phpinfo.php-Files angelegt:

# /srv/www/htdocs
$ ls -l phpin*
-rw-r--r--. 1 user1 user1 20  5. Mai 09:26 phpinfo1.php
-rw-r--r--. 1 user2 user2 20  5. Mai 14:14 phpinfo2.php
-rw-r--r--. 1 user3 user3 20  5. Mai 14:18 phpinfo3.php

Ergebnis:
phpinfo1.php wird so wie bisher nicht angezeigt im Browser
phpinfo2.php wird angezeigt (neuer User mit Root-Rechten)
phpinfo3.php wird ebenfalls angezeigt (neuer User ohne Root-Rechte, also eigentlich so wie user1).

Und, has du schon versucht mal SELinux aud zu schalten um zu testen was es bringt?

I hätte gern eine logische Antwort auf mein Vorschlag.

Die logische Antwort lautet nein. Ich wusste bis gerade gar nicht, dass es so etwas gibt. Nun bin ich ein wenig schlauer.

Was würdest du dann da empfehlen?

audit2allow (scheint ewig zu laufen; abgebrochen)
audit2why (scheint ewig zu laufen; abgebrochen)
ausearch -m avc -ts recent (zeigt jede Menge Zeugs an)

Ich benutze SELinux nicht, aber ich habe hier verschiedene Topics gelesen wo das ein Problem war. Auch mit Apache. Daher meinte ich das darauf hinweisen Nützlich sein dürfte.

Anscheinend hast du entdeckt das du Selinux benutzst. Dan solltest du auch erfinden können wie das zeitweise zum testen auszuschalten.

Werde ich definitiv versuchen. Danke dir.

Eine merkwürdige Sache, die mir aufgefallen ist:

Files in htdocs, die von user1 vorhanden sind, werden auch nicht angezeigt, wenn man die Rechte an andere User inkl. Root vergibt.

Dasselbe gilt, wenn man neue Files im Home-Verzeichnis von user2 und user3 anlegt und sie dann mittels sudo nach htdocs verschiebt.

Erzeugt man Files jedoch in htdocs mit Root und vergibt die Rechte dann an user1, user2 oder user3, werden sie angezeigt.

Ist das normal? Oder habe ich da irgendetwas nicht verstanden? Die Rechte und Eigentümer sind ja gleich, ob man sie in home erzeugt und verschiebt oder direkt in htdocs erzeugt und die Rechte ändert.

Leider, aber so eine Geschichjterzählerei ist kaum zu folgen. Wir (wenigstens ich) brachen Kommandos und was herauskomt.

Z.B.

Zeige, zeige, zeige. Erst Mal ls-l, dann das Kommando womit man “Recht an andere vergibt” (was des auch heißen mag), dan wieder ls -l, usw, usw.

Hab zwar nichts mit einem Apache am Hut, aber wenn selinux läuft, sollte man:
ls -alZ Pfad

benutzen, das Z zeigt die selinux Rechte an.

# Files in home erzeugen und dann verschieben
$ su - user1 (bzw. user2, user3)
$ pwd
$ whoami
$ touch test-home-user1.html
$ nano test-home-user1.html
# Eingabe: test-home-user1.html
# Browsertest: file:///home/user1/test-home-user1.html
$ sudo mv text-home-user1.html /srv/www/htdocs
# Browsertest: http://localhost/test-home-user1.html

# ############

# Files in htdocs erzeugen und dann Eigentümer ändern
$ su
$ pwd
$ whoami
$ touch test-htdocs-user1.html
$ nano test-htdocs-user1.html (Inhalte eingeben)
# Eingabe: test-htdocs-user1.html
$ chown user1:user1 test-htdocs-user1.html
# Browsertest: http://localhost/test-htdocs-user1.html

$ ls -alZ test-*
-rw-r--r--. 1 user1 user1 unconfined_u:object_r:user_home_t:s0           21  5. Mai 16:17 test-home-user1.html
-rw-r--r--. 1 user1 user1 unconfined_u:object_r:httpd_sys_content_t:s0   23  5. Mai 16:22 test-htdocs-user1.html



Auf dem Rechner ohne Probleme sind die Files alle

unconfined_u:object_r:httpd_sys_content_t:s0