Ich habe ein PHP-Skript, das ein Verzeichnis erstellt und ein Bild an das Verzeichnis ausgibt. Dies hat unter Apache einwandfrei funktioniert, aber wir haben kürzlich beschlossen, auf NGINX umzusteigen, um unseren begrenzten Arbeitsspeicher besser zu nutzen. Ich benutze den PHP-Befehl mkdir (), um das Verzeichnis zu erstellen:
mkdir(dirname($path['image']['server']), 0755, true);
Nach dem Wechsel zu NGINX wird folgende Warnung angezeigt:
Warning: mkdir(): Permission denied in ...
Ich habe bereits alle Berechtigungen der übergeordneten Verzeichnisse überprüft. Daher habe ich festgestellt, dass ich wahrscheinlich den NGINX- oder PHP-FPM-Benutzer ändern muss, bin mir aber nicht sicher, wie ich das tun soll (ich musste nie einen Benutzer angeben) Berechtigungen für APACHE). Ich kann nicht viele Informationen dazu finden. Jede Hilfe wäre toll!
(Hinweis: Abgesehen von dieser kleinen Unterbrechung war der Wechsel zu NGINX ziemlich nahtlos. Ich benutze es zum ersten Mal und es dauerte buchstäblich nur etwa 10 Minuten, um mit NGINX in Betrieb zu gehen. Jetzt bügele ich nur noch raus die knicke.)
quelle
nginx.conf
undwww.conf
standardmäßig IIRC.Antworten:
Führen Sie nginx & php-fpm als www: www aus
1. Nginx
Bearbeiten Sie die Datei nginx.conf und setzen Sie den Benutzer auf
www www;
2. PHP-FPM
Bearbeite die php-fpm.conf und setze Benutzer und Gruppe auf
www
.quelle
user www-data
). Allerdings sehe ich nicht jeden Benutzer definiert inphp-fpm.conf
. Sollte ich es einfach mit der gleichen Syntax (user www www
) nach oben setzen?[www]
Teil und fügen Sie esuser=www
in der nächsten Zeile undgroup=www
in der nächsten hinzu.[emerg] getpwnam("www") failed in /etc/nginx/nginx.conf:1 nginx: configuration file /etc/nginx/nginx.conf test failed
.In Ubuntu 14.04 die Datei zu ändern Benutzer und Gruppen in PHP-FPM ist:
/etc/php5/fpm/pool.d/www.conf
. In dieser Datei ändern Sie diese Parameter:quelle
/etc/php/7.2/fpm/pool.d/www.conf
Um Ihre eigentliche Frage zu beantworten, müssen Sie nur die
user
Zeilenginx.conf
wie folgt ändern :Beispiel:
Der bevorzugte Benutzer für die Ausführung von Nginx unterscheidet sich je nach Betriebssystem. Manchmal soll Nginx als laufen
www-data
. Ein anderes Mal soll es eigentlich so laufennobody
.Auf einigen Betriebssystemen (wie Windows) spielt es keine Rolle, und der
user
Line-Innginx.conf
kann auskommentiert oder gänzlich ausgeschlossen werden.quelle