Problem mit nginx

Ich bekomme Dolibarr nicht mit nginx zum laufen.
Die Standardinstallation mit apache auf einem Debian 11.0 funktioniert.
apache deinstalliert, nginx installiert, eine dolibarr in /etc/nginx/sites-available angelegt und nach /etc/nginx/sites-enable verlinkt. in der nginx.conf sind die sites-available altiviert.
nginx -t meldet keine Fehler.
journalctl auch keine Fehler

Feb 14 01:55:28 debian systemd[1]: Starting A high performance web server and a reverse proxy server...
Feb 14 01:55:28 debian systemd[1]: Started A high performance web server and a reverse proxy server.
Feb 14 02:06:09 debian systemd[1]: Stopping A high performance web server and a reverse proxy server...
Feb 14 02:06:09 debian systemd[1]: nginx.service: Succeeded.
Feb 14 02:06:09 debian systemd[1]: Stopped A high performance web server and a reverse proxy server.

Die /var/log/nginx/error.log ergibt nix

Trotzdem bekomme ich ein 404-not found.
Die dolibarr ist nach dem wiki erstellt Webserver - Dolibarr ERP CRM Wiki

[email protected]:/etc/nginx/sites-available# cat dolibarr
server {
       root /usr/share/dolibarr/htdocs;
       index index.html index.php;
       server_name my.dolibarr.localhost;
       location / {
               try_files $uri $uri/ =404;
       }
       location ~ [^/]\.php(/|$) {
               fastcgi_intercept_errors on;
               include         fastcgi_params;
               fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
               fastcgi_param   SCRIPT_NAME $fastcgi_script_name;
               fastcgi_pass unix:/run/php/php7.4-fpm.sock;
       }
   #listen [::]:443 ssl ipv6only=on;
   #listen 443 ssl;
   #ssl_certificate /etc/letsencrypt/live/dolibarr.example.fr/fullchain.pem;
   #ssl_certificate_key /etc/letsencrypt/live/dolibarr.example.fr/privkey.pem;
   #include /etc/letsencrypt/options-ssl-nginx.conf;
   #ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
   #error_log /var/log/nginx/dolibarr.example.fr/error.log warn;
   #access_log /var/log/nginx/dolibarr.example.fr/access.log;
}
#server {
#   if ($host = dolibarr) {
#       return 301 https://$host$request_uri;
#   }
#       listen [::]:80;
#       listen 80;
#       server_name dolibarr;
#       return 404;
#}
[email protected]:/etc/nginx/sites-available#

Wo ist mein Fehler?

Anscheinend hast du alle Zeilen mit „listen“ auskommentiert. Wenn SSL zunächst nicht benötigt wird, würde ich zumindest eine Zeile mit

listen 80;

drin lassen. Die Zeile innerhalb von location / sieht bei mir so aus:

try_files $uri $uri/ /index.php?$args;

Es sind alle Logs deaktiviert. Auch wenn Du für einen internen Server das Access-Log vielleicht nicht benötigst, würde ich das Error-Log auf jeden Fall aktiv lassen. Das kann bei der Fehlersuche hilfreich sein.

Leider komme ich nicht weiter.
Die Logs sind über die nginx.conf aktiv.
Sie spucken folgendes aus:

[email protected]:/var/log/nginx# cat error.log
2022/02/26 00:18:06 [warn] 767#767: conflicting server name "_" on 0.0.0.0:80, ignored
2022/02/26 00:18:06 [warn] 767#767: conflicting server name "_" on [::]:80, ignored
2022/02/26 00:49:00 [warn] 1720#1720: conflicting server name "_" on 0.0.0.0:80, ignored
2022/02/26 00:49:00 [warn] 1720#1720: conflicting server name "_" on [::]:80, ignored
2022/02/26 00:49:00 [warn] 1721#1721: conflicting server name "_" on 0.0.0.0:80, ignored
2022/02/26 00:49:00 [warn] 1721#1721: conflicting server name "_" on [::]:80, ignored

Leider finde ich zu der Fehlermeldung nur Probleme auf öffentlich erreichbaren Servern, wo die namenssetzung falsch ist.

Meine dolibarr sieht zur Zeit so aus:

[email protected]:/etc/nginx/sites-available# cat dolibarr
server {
       listen [::]:80;
       listen 80;
#       server_name localhost.dolibarr.debian;
       return 404;
       root /usr/share/dolibarr/htdocs;
       index index.html index.php;
       server_name _;

       location /dolibarr/ {
                try_files $uri $uri/ /index.php?$args;
                                                                                                                                           
#       location /dolibarr/ {                                                                                                              
#              try_files $uri $uri/ =404;                                                                                                  
       }                                                                                                                                   
       location ~ [^/]\.php(/|$) {                                                                                                         
               fastcgi_intercept_errors on;                                                                                                
               include         fastcgi_params;
               fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
               fastcgi_param   SCRIPT_NAME $fastcgi_script_name;
               fastcgi_pass unix:/run/php/php7.4-fpm.sock;
       }
   #listen [::]:443 ssl ipv6only=on;
   #listen 443 ssl;
   #ssl_certificate /etc/letsencrypt/live/dolibarr.example.fr/fullchain.pem;
   #ssl_certificate_key /etc/letsencrypt/live/dolibarr.example.fr/privkey.pem;
   #include /etc/letsencrypt/options-ssl-nginx.conf;
   #ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
   #error_log /var/log/nginx/dolibarr.example.fr/error.log warn;
   #access_log /var/log/nginx/dolibarr.example.fr/access.log;
}
#server{
#   if ($host = lcalhost.dolibarr.debian) {
#       return 301 https://$host$request_uri;
#   }
#       listen [::]:80;
#       listen 80;
#       server_name localhost.dolibarr.debian;
#       return 404;
#}

Also die location angepasst wie bei dir und natürlich den Server überhaupt erst hören lassen (auf IPv6 und IPv4, wobei ich hier im Heimnetz nur mit IPv4 unterwegs bin und über localhost/dolibarr bzw. 127.0.0.1/dolibarr den Zugriff versuche. Explizit mit http, also ohne das s).
Die unterschiedlichen server_names bringen keine Änderung. In der nginx.conf ist kein server_name aktiviert.
In der default ist server_name _; hinterlegt. Aber wie gesagt, eine Änderung auf einen anderen Namen bringt keine Änderung.

Shit. Peinlich.
meine conf, nur die ersten Zeilen:

[email protected]:/etc/nginx/sites-available# cat dolibarr
server {
       listen [::]:80;
       listen 80;
       return 404;

:grimacing: :grimacing: :grimacing: