Правильная установка (настройка) Nginx/Apache (php/php-fpm)

Здравствуйте,
Направьте пожалуйста на гайдик по правильной установке прав, пользователей, групп (http) при настройке apache или nginx.
Инструкция Wiki не помогла.

в apache чтобы все заработало пришлось выставить папкам фулл права (это не нормально)

а в nginx
*.html работает нормально, а вот *.php не подхватываются

Лог:

2016/08/14 08:26:59 [error] 4306#4306: *1 directory index of "/home/www/test.loc/" is forbidden, client: 127.0.0.1, server: test.loc, request: "GET / HTTP/1.1", host: "test.loc"

Буду очень признателен!
drakulitka
инструкция на wiki толковая
$ ls -la /home
должно вам помочь, хотя может и не в правах то и дело...
Ошибки в тексте-неповторимый стиль автора©
indeviral
$ ls -la /home


/home/
drwxr-xr-x  6 root      root   4096 авг 14 10:06 .
drwxr-xr-x 17 root      root   4096 авг 11 23:11 ..
drwxrwxr-x 10 developer users  4096 авг 13 20:59 www

/home/www/
drwxrwxr-x 10 developer users 4096 авг 13 20:59 .
drwxr-xr-x  6 root      root  4096 авг 14 10:06 ..
drwxrwxr-x  9 developer users 4096 авг 14 08:26 test.loc

Попробую сначала...
А вы в курсе от какого пользователя работает nginx?
Ошибки в тексте-неповторимый стиль автора©
indeviral
А вы в курсе от какого пользователя работает nginx?


root      3689  0.0  0.0  28292   800 ?        Ss   11:55   0:00 nginx: master process /usr/bin/nginx -g pid /run/nginx.pid; error_log stderr;
http      3690  0.0  0.0  28732  3088 ?        S    11:55   0:00 nginx: worker process
root      3695  0.0  0.8 299536 33100 ?        Ss   11:55   0:00 php-fpm: master process (/etc/php/php-fpm.conf)
http      3696  0.0  0.2 299536  8884 ?        S    11:55   0:00 php-fpm: pool www
http      3697  0.0  0.2 299536  8884 ?        S    11:55   0:00 php-fpm: pool www
Включаем теперь логику, и устанавливаем сначала адекватные права.
Ошибки в тексте-неповторимый стиль автора©
indeviral
Включаем теперь логику, и устанавливаем сначала адекватные права.
С логикой полный порядок, а вот с понятием прав немножко проблемы ) Поэтому гайдик просил по правам.
Если не трудно объясните пожалуйста на примере Nginx

passwd:
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/usr/bin/nologin
daemon:x:2:2:daemon:/:/usr/bin/nologin
mail:x:8:12:mail:/var/spool/mail:/usr/bin/nologin
ftp:x:14:11:ftp:/srv/ftp:/usr/bin/nologin
uuidd:x:68:68:uuidd:/:/usr/bin/nologin
dbus:x:81:81:dbus:/:/usr/bin/nologin
nobody:x:99:99:nobody:/:/usr/bin/nologin
systemd-journal-gateway:x:191:191:systemd-journal-gateway:/:/usr/bin/nologin
systemd-timesync:x:192:192:systemd-timesync:/:/usr/bin/nologin
systemd-network:x:193:193:systemd-network:/:/usr/bin/nologin
systemd-bus-proxy:x:194:194:systemd-bus-proxy:/:/usr/bin/nologin
systemd-resolve:x:195:195:systemd-resolve:/:/usr/bin/nologin
systemd-coredump:x:999:999:systemd Core Dumper:/:/sbin/nologin
systemd-journal-remote:x:997:997:systemd Journal Remote:/:/sbin/nologin
systemd-journal-upload:x:998:998:systemd Journal Upload:/:/sbin/nologin
developer:x:1000:100::/home/developer:/bin/bash
nvidia-persistenced:x:143:143:NVIDIA Persistence Daemon:/:/sbin/nologin
avahi:x:84:84:avahi:/:/bin/nologin
polkitd:x:102:102:Policy Kit Daemon:/:/usr/bin/nologin
colord:x:124:124::/var/lib/colord:/bin/false
rtkit:x:133:133:RealtimeKit:/proc:/bin/false
gdm:x:120:120:Gnome Display Manager:/var/lib/gdm:/sbin/nologin
usbmux:x:140:140:usbmux user:/:/sbin/nologin
git:x:996:996:git daemon user:/:/bin/bash
mysql:x:89:89::/var/lib/mysql:/bin/false
http:x:1001:1001::/home/developer/www:/bin/bash
postgres:x:88:88:PostgreSQL user:/var/lib/postgres:/bin/bash

group:
root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon
sys:x:3:root,bin
adm:x:4:root,daemon
tty:x:5:
disk:x:6:root
lp:x:7:daemon,developer
mem:x:8:
kmem:x:9:
wheel:x:10:root,developer
ftp:x:11:
mail:x:12:
uucp:x:14:
log:x:19:root
utmp:x:20:
locate:x:21:
rfkill:x:24:
smmsp:x:25:
proc:x:26:polkitd
games:x:50:
lock:x:54:
uuidd:x:68:
dbus:x:81:
network:x:90:
video:x:91:
audio:x:92:
optical:x:93:
floppy:x:94:
storage:x:95:developer
scanner:x:96:
input:x:97:
power:x:98:developer
nobody:x:99:
users:x:100:developer,http
systemd-journal:x:190:
systemd-journal-gateway:x:191:
systemd-timesync:x:192:
systemd-network:x:193:
systemd-bus-proxy:x:194:
systemd-resolve:x:195:
systemd-coredump:x:999:
systemd-journal-remote:x:997:
systemd-journal-upload:x:998:
nvidia-persistenced:x:143:
avahi:x:84:
polkitd:x:102:
colord:x:124:
rtkit:x:133:
gdm:x:120:
usbmux:x:140:
git:x:996:
brlapi:x:995:
bumblebee:x:56:
mysql:x:89:
http:x:1001:http
postgres:x:88:

Думаю у меня с правами, пользователями и группами не все хорошо
Как все правильно настроить, чтобы и у Nginx был доступ к каталогу, и у IDEшки (PHPStorm) ....
Nginx (Apache) будет спокойно работать с правами YourUser:users.
Ему права на запись при чтении файлов не нужны


nginx.conf:


user developer users;
worker_processes  1;

error_log  /home/www/test.loc/logs/error.log;
error_log  /home/www/test.loc/logs/notice.log  notice;
error_log  /home/www/test.loc/logs/info.log  info;

#pid        logs/nginx.pid;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
        server_name  localhost;

        #charset utf-8;

        #access_log  logs/host.access.log  main;

        location / {
            root   /home/www/test.loc/;
            index  index.html;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #

	location ~ \.php$ {
            root           /home/www/test.loc/;
            fastcgi_pass   127.0.0.1:9000;
            #fastcgi_pass   unix:/var/run/php-fpm.sock;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /home/www/test.loc$fastcgi_script_name;
            include        fastcgi_params;
        }

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }
    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}
    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

}

Процессы:

root      7779  0.0  0.0  28296   824 ?        Ss   12:52   0:00 nginx: master process /usr/bin/nginx -g pid /run/nginx.pid; error_log stderr;
develop+  7780  0.0  0.0  28756  2944 ?        S    12:52   0:00  \_ nginx: worker process
root      7786  0.1  0.8 299536 33020 ?        Ss   12:52   0:00 php-fpm: master process (/etc/php/php-fpm.conf)
http      7787  0.0  0.2 299536  8940 ?        S    12:52   0:00  \_ php-fpm: pool www
http      7788  0.0  0.2 299536  8940 ?        S    12:52   0:00  \_ php-fpm: pool www

логи:

2016/08/14 12:55:11 [notice] 7889#7889: using the "epoll" event method
2016/08/14 12:55:11 [notice] 7889#7889: nginx/1.10.1
2016/08/14 12:55:11 [notice] 7889#7889: OS: Linux 4.6.4-1-ARCH
2016/08/14 12:55:11 [notice] 7889#7889: getrlimit(RLIMIT_NOFILE): 1024:4096
2016/08/14 12:55:11 [notice] 7890#7890: start worker processes
2016/08/14 12:55:11 [notice] 7890#7890: start worker process 7893
2016/08/14 12:55:18 [error] 7893#7893: *1 directory index of "/home/www/test.loc/" is forbidden, client: 127.0.0.1, server: localhost, request: "GET / HTTP/1.1", host: "test.loc"

ls -la /home

drwxr-xr-x  6 root      root   4096 авг 14 10:06 .
drwxr-xr-x 17 root      root   4096 авг 11 23:11 ..
drwxrwxr-x 10 developer users  4096 авг 13 20:59 www

ls -la /home/www

drwxrwxr-x 10 developer users 4096 авг 13 20:59 .
drwxr-xr-x  6 root      root  4096 авг 14 10:06 ..
drwxrwxr-x  9 developer users 4096 авг 14 12:15 test.loc

ls -la /home/www/test.loc
drwxrwxr-x  9 developer users 4096 авг 14 12:15 .
drwxrwxr-x 10 developer users 4096 авг 13 20:59 ..
drwxrwxr-x  3 developer users 4096 авг 11 20:37 css
drwxrwxr-x  2 developer users 4096 авг 12 21:05 img
-rw-rw-r--  1 developer users   19 авг 14 12:06 index.php
corner
я и не говорил что он не будет работать.
например в /home/user права должны быть 700
а nignx дожен работать с полным доступом к директориям.
и не должен иметь права на исполнение файлов.
причём он должен быть их владельцем что как бы вполне логично.
ну и тд.

конечно это всё не гласные правила, и можно как угодно их обходить но для начала нужно научится использовать именно такие.

drakulitka
index index.html;
...
Ошибки в тексте-неповторимый стиль автора©
 
Зарегистрироваться или войдите чтобы оставить сообщение.