J'ai un script PHP qui crée un répertoire et affiche une image dans le répertoire. Cela fonctionnait très bien sous Apache, mais nous avons récemment décidé de passer à NGINX pour utiliser davantage notre RAM limitée. J'utilise la commande PHP mkdir () pour créer le répertoire:
mkdir(dirname($path['image']['server']), 0755, true);
Après le passage à NGINX, je reçois l'avertissement suivant:
Warning: mkdir(): Permission denied in ...
J'ai déjà vérifié toutes les autorisations des répertoires parents. J'ai donc déterminé que je devais probablement changer «l'utilisateur» de NGINX ou de PHP-FPM, mais je ne savais pas trop comment procéder (je n'ai jamais eu à spécifier utilisateur. autorisations pour APACHE). Je n'arrive pas à trouver beaucoup d'informations à ce sujet. Toute aide est la bienvenue!
(Remarque: outre ce petit blocage, le passage à NGINX s’est fait sans heurts; je l’utilise pour la première fois et il ne m'a fallu que 10 minutes environ pour me familiariser avec NGINX. Maintenant, je repasse les binks.)
la source
nginx.conf
etwww.conf
par défaut IIRC.Réponses:
Exécutez nginx & php-fpm en tant que www: www
1. Nginx
Editez nginx.conf et définissez l' utilisateur sur
www www;
2. PHP-FPM
Éditez php-fpm.conf et définissez l'utilisateur et le groupe sur
www
.la source
user www-data
). Cependant, je ne vois aucun utilisateur défini dansphp-fpm.conf
. Devrais-je simplement l'ajouter en utilisant la même syntaxe (user www www
)?[www]
partie et ajoutez-lauser=www
à la ligne suivante etgroup=www
à la suivante.[emerg] getpwnam("www") failed in /etc/nginx/nginx.conf:1 nginx: configuration file /etc/nginx/nginx.conf test failed
.Dans Ubuntu 14.04 le fichier au changement utilisateur et groupe dans PHP-FPM est:
/etc/php5/fpm/pool.d/www.conf
. Dans ce fichier, modifiez ces paramètres:la source
/etc/php/7.2/fpm/pool.d/www.conf
Pour répondre à votre question, il suffit de modifier la
user
ligne de langinx.conf
manière suivante:Exemple:
L’utilisateur privilégié pour Nginx s’exécute en réalité selon les systèmes d’exploitation. Parfois, Nginx est supposé fonctionner en tant que
www-data
. D'autres fois, il est censé fonctionner commenobody
.Sur certains systèmes d'exploitation (tels que Windows), cela n'a pas d'importance, et l' entrée
user
en lignenginx.conf
peut être commentée ou totalement exclue.la source