У меня есть nginx с 3 пулами для php7.4-fpm — по одному на каждого из 3 пользователей в системе, так как у них есть свои приложения и файлы. Настройка всех трех полностью идентична, но у недавно добавленного есть проблема с правами доступа.
Браузер выдает ошибку 404 - Not Found.
Ошибка возвращается в журнал nginx:
18.01.2022, 09:32:16 [крит] 504237#504237: *5120 стат()
Ошибка "/var/www/user3/websites/site.com/index.php" (13: разрешение
отклонено), клиент: XXX.XXX.XXX.XXX, сервер: site.com, запрос: «GET /
HTTP/2.0", хост: "site.com"
sudo -u user3 stat /var/www/user3/websites/site.com/index.php
возвращается
Файл: /var/www/user3/websites/site.com/index.php
Размер: 405 Блоков: 8 Блок ввода-вывода: 4096 обычный файл
Устройство: 807h/2055d Инод: 1441895 Ссылки: 1
Доступ: (0644/-rw-r--r--) Uid: (1003/user3) Gid: (1003/user3)
Доступ: 2022-01-17 20:32:08.081267396 +0000
Изменить: 2020-04-26 21:46:41.000000000 +0000
Изменение: 2022-01-18 09:35:09.129994390 +0000
Конфигурация пула:
[php7.4-пользователь3]
пользователь = пользователь3
группа = пользователь3
слушать = 127.0.0.1:9003
слушать.владелец = никто
listen.group = никто
listen.allowed_clients = 127.0.0.1
вечера = по требованию
pm.max_children = 24
pm.start_servers = 16
pm.min_spare_servers = 6
pm.max_spare_servers = 24
pm.process_idle_timeout = 900 с
pm.max_requests = 55
php_admin_value[error_log] = /var/log/fpm-php7.4.log
php_admin_flag[log_errors] = вкл.
php_admin_value[error_reporting] = E_ALL & ~E_NOTICE & ~E_WARNING & ~E_STRICT & ~E_DEPRECATED
Другие пулы почти такие же, за исключением имени пула, пользователя и группы — это user1, user2, а порт прослушивания отличается, например, 9001, 9002, 9003, следовательно, x в конфигурации.
конфигурация виртуального хоста
сервер {
имя_сервера site.com www.site.com;
журнал_доступа /var/log/nginx/site.com.access.log;
error_log /var/log/nginx/site.com.error.log;
корень /var/www/user3/websites/site.com;
индекс index.php index.html index.htm;
место расположения / {
try_files $uri $uri/ /index.php?$args;
}
расположение ~ \.php$ {
try_files $uri = 404;
включить fastcgi_params;
fastcgi_pass 127.0.0.1:9003;
}
слушать 443 ssl http2;
ssl_certificate /etc/letsencrypt/live/site.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/site.com/privkey.pem;
включить /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}
сервер {
если ($host = www.site.com) {
вернуть 301 https://$host$request_uri;
}
если ($ хост = site.com) {
вернуть 301 https://$host$request_uri;
}
слушать ХХХ.ХХХ.ХХХ.ХХХ:80;
имя_сервера site.com www.site.com;
вернуть 404;
}
Чего мне не хватает для user3, чтобы работали nginx и fpm? Один и тот же конфиг для user1 и user2 работает нормально.