Puncte:0

Nginx php-fpm 1 din 3 pool-uri nu funcționează: returnează stat() eșuat (13: Permisiune refuzată)

drapel tr

Am nginx cu 3 pool-uri pentru php7.4-fpm - unul pentru fiecare dintre cei 3 utilizatori din sistem, deoarece au propriile aplicații și fișiere. Configurația tuturor celor 3 este complet identică, dar cea adăugată recent are o problemă de permisiune.

Browserul returnează eroarea 404 - Nu a fost găsită.

Eroare returnată în jurnalul nginx:

2022/01/18 09:32:16 [crit] 504237#504237: *5120 stat() „/var/www/user3/websites/site.com/index.php” a eșuat (13: Permisiune refuzat), client: XXX.XXX.XXX.XXX, server: site.com, cerere: „GET / HTTP/2.0”, gazdă: „site.com”

sudo -u user3 stat /var/www/user3/websites/site.com/index.php

se intoarce

  Fișier: /var/www/user3/websites/site.com/index.php
  Dimensiune: 405 Blocuri: 8 Bloc IO: 4096 fișier obișnuit
Dispozitiv: 807h/2055d Inode: 1441895 Link-uri: 1
Acces: (0644/-rw-r--r--) Uid: ( 1003/ user3) Gid: ( 1003/ user3)
Acces: 2022-01-17 20:32:08.081267396 +0000
Modificare: 2020-04-26 21:46:41.000000000 +0000
Modificare: 2022-01-18 09:35:09.129994390 +0000

Configurare bazin:

[php7.4-user3]

utilizator = utilizator3
grup = utilizator3

asculta = 127.0.0.1:9003
ascultă.proprietar = nimeni
ascultă.grup = nimeni
listen.allowed_clients = 127.0.0.1

pm = la cerere
pm.max_children = 24
pm.start_servers = 16
pm.min_spare_servers = 6
pm.max_spare_servers = 24
pm.process_idle_timeout = 900s
pm.max_requests = 55

php_admin_value[error_log] = /var/log/fpm-php7.4.log
php_admin_flag[log_errors] = activat
php_admin_value[error_reporting] = E_ALL & ~E_NOTICE & ~E_WARNING & ~E_STRICT & ~E_DEPRECATED

Celelalte pool-uri sunt aproape aceleași, cu excepția numelui pool-ului, utilizatorului și grupului sunt user1, user2 și portul de ascultare este diferit, cum ar fi, de exemplu, 9001, 9002, 9003, de unde x din configurație.

configurarea gazdei virtuale

Server {
    nume_server site.com www.site.com;

    access_log /var/log/nginx/site.com.access.log; 
    error_log /var/log/nginx/site.com.error.log;

    root /var/www/user3/websites/site.com;

    index index.php index.html index.htm;

    Locație / {
      try_files $uri $uri/ /index.php?$args;
    }
    locație ~ \.php$ {
      try_files $uri =404;
      include fastcgi_params;
      fastcgi_pass 127.0.0.1:9003;
    }

    asculta 443 ssl http2;
    ssl_certificate /etc/letsencrypt/live/site.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/site.com/privkey.pem;
    includ /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}
Server {
    dacă ($gazdă = www.site.com) {
        returnează 301 https://$host$request_uri;
    }
    dacă ($gazdă = site.com) {
        returnează 301 https://$host$request_uri;
    }
    ascultați XXX.XXX.XXX.XXX:80;
    nume_server site.com www.site.com;
    întoarce 404;
}

Ce îmi lipsește pentru user3, așa că nginx și fpm funcționează? Aceeași configurație pentru user1 și user2 funcționează bine.

drapel jp
Verificați că `user3` poate accesa (are +x permisiuni) toate directoarele din arborele `/var/www/user3/websites/site.com`. Aceasta include `/var`, `/var/www` etc.
drapel jp
De fapt, nu `user3`, ci utilizatorul nginx.
drapel in
Puteți verifica acest lucru cu ușurință rulând `namei -l /var/www/user3/websites/site.com/index.php`.
drapel tr
Cum să faceți acest lucru fără a afecta permisiunile utilizatorului: proprietarul grupului?
drapel tr
BINE. Apare că folderul /var/www/user3 avea 750 de permisiuni în loc de 755. Acum funcționează. Mulțumiri!
Puncte:0
drapel tr

Apare că folderul /var/www/user3 avea 750 de permisiuni în loc de 755. Acum funcționează.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.