Hallo,
ich versuche mich gerade an der Nextcloud Installation auf Arch-Linux, welches in einem dedizierten Proxmox LXC Container (also nicht als VM) laufen soll.
Für die Datenbank nutze ich einen separaten Container, in dem PostgreSQL läuft.
Als Webserver soll nginx dienen und php-fpm als Application Server.
Alle meine Server / Dienste wie. z.B. Videoüberwachung sind nur aus dem lokalen Netz bzw. über ein Wireguard VPN erreichbar. Ein direkter Zugriff aus dem Internet heraus ist nicht geplant.
Der "DB" Container ist bereits vollständig lauffähig und auch erreichbar.
Wenn man aus dem Nextcloud Container folgenden Befehl absetzt, wird die Nextcloud Datenbank korrekt eingerichtet und ist auch per psql abfragbar.
occ maintenance:install \
--database=pgsql \
--database-name=nextcloud \
--database-host="DBS.dry.lan" \
--database-user=nextcloud \
--database-pass="blablablubb" \
--admin-pass="blablubb" \
--admin-email=sysop@dry.lan \
--data-dir=/zPool/NxCData
Ich denke an das Thema Datenbank kann man daher schon mal einen Haken machen...
Beim Thema Nextcloud Installation tue ich mich dann etwas schwer, zumal der Wiki Artikel einige Dinge nicht beschreibt, bzw. als bekannt voraussetzt. Ich habe aber null Plan von den Themen PHP und NGINX 🙁
Insbesondere das Thema nginx gestaltet sich schwierig, da in dem Nextcloud Wiki Artikel fast nichts dazu steht und auf den nginx Artikel verwiesen wird.
Im Nextcloud Wiki steht zum Thema Rechte ganz lapidar:
Since version 21.0.0 nextcloud more closely follows the web application package guidelines. This introduces the separate user nextcloud, as which the web application is run.
an application server, such as php-fpm or UWSGI is configured to run the web application as the nextcloud user and not the http user
Wenn ich mir nach der Installation des "Nextcloud" Paketes die Rechte im Dateisystem ansehe, dann hat aber alles unterhalb von /usr/share/webapps die Owner root:root.
Also weder "nextcloud" noch "http"!
Daraus würde ich folgern, das entweder die Rechte falsch gesetzt sind, oder an irgendeiner Stelle die Rechte geswitcht werden. Aber wo ist bzw. wo wird das konfiguriert?
Oder fehlt nur ein entsprechender Hinweis im Wiki Artikel, das man das händisch machen muss?
Ok, nachdem ich an dieser Frage hängen geblieben bin, habe ich zunächst einmal nginx gemäß Anleitung installiert.
Um überhaupt mal was testen zu können, habe ich die Muster Konfiguration aus der Anleitung übernommen.
[root@NxC` nginx]# cat nginx.conf
user http;
worker_processes auto;
worker_cpu_affinity auto;
events {
multi_accept on;
worker_connections 1024;
}
http {
charset utf-8;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
server_tokens off;
log_not_found off;
types_hash_max_size 4096;
client_max_body_size 16M;
# MIME
include mime.types;
default_type application/octet-stream;
# logging
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log warn;
# load configs
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
Außerdem habe ich eine Server Konfiguration gebastelt.
[root@NxC nginx]# cat sites-enabled/OpenWrt.conf
server {
listen 80;
listen [::]:80;
server_name OpenWrt.dry.lan;
root /usr/share/webapps/OpenWrt;
location / {
autoindex on;
autoindex_exact_size off;
autoindex_format html;
autoindex_localtime on;
}
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name OpenWrt.dry.lan;
root /usr/share/webapps/OpenWrt;
location / {
autoindex on;
autoindex_exact_size off;
autoindex_format html;
autoindex_localtime on;
}
ssl_certificate /etc/ssl/nginx/NxC.dry.lan.crt;
ssl_certificate_key /etc/ssl/nginx/NxC.dry.lan.key;
}
Zum Test habe ich auch noch einen passenden DNS Eintrag auf meinem OpenWrt "Server" erstellt. Damit ist die Nextcloud Maschine jetzt über 2 DNS Namen erreichbar.
OpenWrt.dry.lan
NxC.dry.lan
Im Ergebnis werden auch alle Dateien & Verzeichniss aus dem Ordner /usr/share/webapps/OpenWrt/ angezeigt.
Dennoch bin ich verwirrt. Im Wiki steht zu nginx:
By default, nginx runs the master process as root and worker processes as user http. To run worker processes as another user, change the user directive in nginx.conf:
In der nginx.conf ist "user=http" spezifiziert. Die Dateien /usr/share/webapps/OpenWrt/ gehören aber alle root:root.
Erst wenn ich einer Datei das Recht für "other" entziehe, wird sie nicht mehr angezeigt!
Müsste man dann nicht grundssätzlich erst einmal allen Dateien in /usr/share/webapps/ diese Rechte entziehen.
Im Wiki habe ich dazu nichts gefunden ...
Und einen Zusammenhang zu "user=http" kann ich sowieso nirgends erkennen.
Ich denke es ist hilfreich bereits an dieser Stelle zu verstehen, was es mit den Dateirechten auf sich hat, bevor ich weiter in die Nextcloud Installation eintauche und totalen Müll produziere ...