nginx + PHP-FPM = permission denied error 13

verfaa

Профессор
Регистрация
29 Янв 2007
Сообщения
417
Реакции
49
Установил на чистый vps centos 7, nginx 1.6.3 и PHP-FPM 5.6.18
При попытке обратиться к сайту, получаю в логи nginx ошибку
Код:
2016/03/01 17:39:58 [crit] 1536#0: *13 stat() "/home/site/1.php" failed (13: Permission denied), client: 178.xxx.xxx.xxx, server: site4.ru, request: "GET /1.php HTTP/1.1", host: "173.xxx.xxx.xxx"

В /etc/php-fpm.d/Для просмотра ссылки Войди или Зарегистрируйся указал:
Код:
; RPM: apache Choosed to be able to access some dir as httpd
user = apache
; RPM: Keep a group allowed to write in log dir.
group = apache
...
listen = /run/php-fpm/php-fpm.sock
...
listen.owner = nginx
listen.group = nginx
listen.mode = 0660

В файле nginx.conf сайт установлен так:
Код:
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
........
server {
    listen       173.xxx.xxx.xxx:80;
    server_name site4.ru;

    location / {
        root   /home/site;
        index  index.php;
        if (!-e $request_filename) {
               rewrite ^ /index.php last;
               break;
        }
    }

    location ~ \.php$ {
        root           /home/site;
        try_files $uri =404;
        fastcgi_pass   unix:/run/php-fpm/php-fpm.sock;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include /etc/nginx/fastcgi_params;
    }
}

Перерыл весь инет, ничего не помогает! Вроде права везде совпадают, на другом моём сервере при таких настройках все работает. Помогите советом.
 
Лучше создай отдельного пользователя под сайты, в конфиге пула php-fpm выставь этого пользователя владельцем, выдай разрешения на папку с сайтом этому пользователю.
 
права на /home/site некорректные. подними хотябы до 755 для проверки.
 
Установил на чистый vps centos 7, nginx 1.6.3 и PHP-FPM 5.6.18
При попытке обратиться к сайту, получаю в логи nginx ошибку
Код:
2016/03/01 17:39:58 [crit] 1536#0: *13 stat() "/home/site/1.php" failed (13: Permission denied), client: 178.xxx.xxx.xxx, server: site4.ru, request: "GET /1.php HTTP/1.1", host: "173.xxx.xxx.xxx"

В /etc/php-fpm.d/Для просмотра ссылки Войди или Зарегистрируйся указал:
Код:
; RPM: apache Choosed to be able to access some dir as httpd
user = apache
; RPM: Keep a group allowed to write in log dir.
group = apache
...
listen = /run/php-fpm/php-fpm.sock
...
listen.owner = nginx
listen.group = nginx
listen.mode = 0660

В файле nginx.conf сайт установлен так:
Код:
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
........
server {
    listen       173.xxx.xxx.xxx:80;
    server_name site4.ru;

    location / {
        root   /home/site;
        index  index.php;
        if (!-e $request_filename) {
               rewrite ^ /index.php last;
               break;
        }
    }

    location ~ \.php$ {
        root           /home/site;
        try_files $uri =404;
        fastcgi_pass   unix:/run/php-fpm/php-fpm.sock;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include /etc/nginx/fastcgi_params;
    }
}

Перерыл весь инет, ничего не помогает! Вроде права везде совпадают, на другом моём сервере при таких настройках все работает. Помогите советом.


Попробуйте такое. я в сети находил, мне помогло.
my_user - это пользователь

1) В nginx.conf ставьте

user my_user; # вместо user nginx;

2) В php5/fpm/pool.d/Для просмотра ссылки Войди или Зарегистрируйся

# Найдите и исправьте на
user = my_user
group = my_user
listen.owner = my_user
listen.group = my_user


3) Перезапуск nginx и fpm. Далее на папку /var/lib/nginx/tmp руками ставьте права 0700 на пользователя my_user
chown -R my_user:my_user 0700 /var/lib/nginx/tmp

Отпишитесь. Получилось ли?
 
Для просмотра ссылки Войди или Зарегистрируйся знаю про этот совет, тут его прочитал Для просмотра ссылки Войди или Зарегистрируйся, вчера около часа пытался его применить, крутил по разному - не помогло.

А правильный ответ - SELinux. На другом сайте посоветовали проверить SELinux, проверил - он оказался включён. Отключил, перезагрузился и все заработало. Но теперь мучает вопрос, а насколько безопасно отключать SELinux? На VPS работаю один, других юзеров там нет, все делаю под рутом. Можно отключать SELinux в этом случае?

На папку /home/site стоят права 0755. Владелец и группа root [0]
 
Назад
Сверху