У меня есть сценарий PHP, который создает каталог и выводит изображение в каталог. Это работало просто отлично под Apache, но мы недавно решили переключиться на NGINX, чтобы больше использовать нашу ограниченную оперативную память. Я использую команду PHP mkdir () для создания каталога:
mkdir(dirname($path['image']['server']), 0755, true);
После переключения на NGINX я получаю следующее предупреждение:
Warning: mkdir(): Permission denied in ...
Я уже проверил все разрешения родительских каталогов, поэтому я определил, что мне, вероятно, нужно изменить «пользователя» NGINX или PHP-FPM, но я не уверен, как это сделать (мне никогда не приходилось указывать пользователя разрешения для APACHE). Я не могу найти много информации по этому вопросу. Любая помощь будет отличной!
(Примечание: Помимо этого небольшого зависания, переключение на NGINX было довольно плавным; я использую его впервые, и буквально потребовалось всего около 10 минут, чтобы начать работу с NGINX. Теперь я просто глажу изломы.)
источник
nginx.conf
иwww.conf
по умолчанию IIRC.Ответы:
Запустите nginx & php-fpm как www: www
1. Nginx
Отредактируйте nginx.conf и установите для пользователя значение
www www;
2. PHP-FPM
Отредактируйте php-fpm.conf и установите для пользователя и группы значение
www
.источник
user www-data
). Тем не менее, я не вижу ни одного пользователя, определенного вphp-fpm.conf
. Должен ли я просто добавить его в начало, используя тот же синтаксис (user www www
)?[www]
часть и добавьтеuser=www
в следующую строку иgroup=www
в следующую.[emerg] getpwnam("www") failed in /etc/nginx/nginx.conf:1 nginx: configuration file /etc/nginx/nginx.conf test failed
.В Ubuntu 14.04 файл для изменения пользователя и группы в PHP-FPM является:
/etc/php5/fpm/pool.d/www.conf
. В этом файле измените эти параметры:источник
/etc/php/7.2/fpm/pool.d/www.conf
Чтобы ответить на ваш вопрос, просто измените
user
строкуnginx.conf
следующим образом:Пример:
Предпочтительный пользователь для запуска Nginx, поскольку фактически отличается в разных операционных системах. Иногда Nginx должен работать как
www-data
. В других случаях это на самом деле должно работать какnobody
.В некоторых операционных системах (таких как Windows) это даже не имеет значения, и
user
строкаnginx.conf
может быть закомментирована или полностью исключена.источник