Я установил сервер nginx nginx / 1.10.2 на CentOS 7.
Я настроил nginx для использования php-fpm PHP 5.4.16 (fpm-fcgi) (сборка: 6 ноября 2016 г., 00:30:57).
Я использую новый пул, настроенный в /etc/php-fpm.d/piwik.conf:
[piwik]
user = piwik
group = piwik
listen = /var/run/php5-fpm-piwik.sock
listen.owner = nginx
listen.group = nginx
;listen.mode = 0660
;php_admin_value[disable_functions] = exec,passthru,shell_exec,system
php_admin_flag[allow_url_fopen] = off
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
chdir = /
Важная часть nginx.conf:
location ~ ^/piwik/(.*)$ {
root /usr/share/nginx/html;
try_files $uri =404;
#fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/var/run/php5-fpm-piwik.sock;
# fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
# fastcgi_param PATH_INFO $fastcgi_script_name;
# include fastcgi_params;
include fastcgi.conf;
# fastcgi_param REQUEST_METHOD $request_method;
fastcgi_index info1.php;
}
Когда я прошу Http: //localhost/piwik/info1.php это показывает мне
_SERVER [«ПОЛЬЗОВАТЕЛЬ»] piwik
Так что теперь у меня только проблема с установкой прав доступа к папке
/ USR / доли / Nginx / html / Piwik.
Поскольку я прочитал, пользователю нужно разрешение x на весь путь, чтобы пройти в нужную папку.
Папка и файлы должны быть доступны для чтения, а для piwik некоторые папки должны быть доступны для записи.
Поскольку CentOS 7 по умолчанию включает SELinux, мне пришлось выполнить следующие команды, чтобы получить доступ для записи:
chcon -R -t httpd_sys_content_rw_t / usr / share / nginx / html / piwik / tmp /
systemctl перезапустить php-fpm
Я изменил пользователя и группу на piwik.
Но когда я установил следующие права
chmod 700 -R / usr / share / nginx / html / piwik /
Я не могу получить доступ к файлам. Я получаю разрешение отказано в ошибке.
Я понял, что мне нужны права 701:
drwx-----x. 13 piwik piwik 4096 18. Aug 09:49 .
drwxr-xr-x. 5 root root 4096 16. Aug 04:27 ..
-rwx-----x. 1 piwik piwik 932 8. Jun 2015 bower.json
-rwx-----x. 1 piwik piwik 38272 11. Apr 2016 CHANGELOG.md
...
...
Пожалуйста, помогите мне понять, почему я должен включить исполняемый бит для других пользователей.
Хорошо, для обслуживания статических файлов даже 775 должны быть установлены ?!
Благодарю вас.
С наилучшими пожеланиями
РЕДАКТИРОВАТЬ:
Проблема не в обслуживании динамических файлов php. Это обслуживание статических файлов, потому что nginx работает под одним конкретным пользователем.
Я нашел эту ссылку:
https://serverfault.com/questions/370820/user-per-virtual-host-in-nginx
Полезный комментарий был:
При настройке vhost укажите корневую группу документов www-data и perms 0710.
(поскольку для настройки nginx требуется root, нет проблем с тем, что ваша автоматизация также установит необходимые разрешения).
Тогда содержимое docroot просто должно быть o + x для каталогов и o + r для файлов.
Так что я думаю, что это хорошая установка:
nginx работает как пользователь nginx
для разделения разных пользователей (приложений) установите следующие разрешения (запуск от имени root):
ls -la /usr/share/nginx/
drwx--x--x. 6 nginx nginx 4096 18. Aug 19:18 html
groupadd pydio
useradd -g pydio pydio
mkdir /usr/share/nginx/html/pydio/
chown pydio:pydio -R /usr/share/nginx/html/pydio/
find /usr/share/nginx/html/pydio/ -type d -exec chmod 701 {} \;
find /usr/share/nginx/html/pydio/ -type f -exec chmod 704 {} \;
chmod 710 /usr/share/nginx/html/pydio/
Пожалуйста, кто-нибудь может проверить?
Задача ещё не решена.
Других решений пока нет …