it-swarm.com.de

Wie ändere ich den NGINX-Benutzer?

Ich habe ein PHP Skript, das ein Verzeichnis erstellt und ein Image in das Verzeichnis ausgibt. Dies funktionierte unter Apache einwandfrei, aber wir haben kürzlich beschlossen, auf NGINX zu wechseln, um unseren begrenzten RAM besser zu nutzen. Ich verwende den Befehl PHP mkdir (), um das Verzeichnis zu erstellen:

mkdir(dirname($path['image']['server']), 0755, true);

Nach dem Wechsel zu NGINX erhalte ich folgende Warnung:

Warning: mkdir(): Permission denied in ...

Ich habe bereits alle Berechtigungen der übergeordneten Verzeichnisse überprüft und festgestellt, dass ich wahrscheinlich den NGINX- oder PHP-FPM-Benutzer ändern muss, bin mir aber nicht sicher, wie das geht (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 diesem kleinen Auflegen verlief die Umstellung auf NGINX ziemlich nahtlos. Ich verwende 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 aus den Knicken.)

44
David

Führen Sie nginx & php-fpm als www: www aus

1. Nginx

Bearbeiten Sie die Datei nginx.conf und setzen Sie Benutzer auf www www;

Wenn der Master-Prozess als root ausgeführt wird, setzt nginx setuid ()/setgid () auf USER/GROUP. Wenn GROUP nicht angegeben ist, verwendet nginx denselben Namen wie USER. Standardmäßig ist es niemand Benutzer und niemand oder Nogruppengruppe oder --user = USER und --group = GROUP aus dem Skript ./configure.

2. PHP-FPM

Bearbeiten Sie php-fpm.conf und setzen Sie Benutzer und Gruppe auf www.

benutzer - Unix-Benutzer von Prozessen. Standard "www-data"

gruppe - Unix-Gruppe von Prozessen. Standard "www-data"

64
glavić

In Ubuntu 14.04 die zu ändernde Datei Benutzer und Gruppe in PHP-FPM ist: /etc/php5/fpm/pool.d/www.conf. Ändern Sie in dieser Datei diese Parameter:

user = www
group = www
listen.owner = www
listen.group = www
27
iarroyo

Um Ihre aktuelle Frage zu beantworten, müssen Sie nur die Zeile user in nginx.conf So ändern:

user    [username];

Beispiel:

user    www-data;

Der bevorzugte Benutzer für Nginx, der tatsächlich ausgeführt wird, unterscheidet sich zwischen den Betriebssystemen. Manchmal soll Nginx als www-data Ausgeführt werden. In anderen Fällen soll es tatsächlich als nobody ausgeführt werden.

Unter einigen Betriebssystemen (wie Windows) spielt dies keine Rolle, und die Zeile user in nginx.conf Kann auskommentiert oder vollständig ausgeschlossen werden.

6
rubynorails

Die folgende Lösung hat den Webbenutzer mit Ubuntu 18.04 LTS, nginx 1.14 Und php7.2-fpm Bei mir geändert.

1. Nginx

Bearbeiten Sie /etc/nginx/nginx.conf Und setzen Sie den Benutzer auf webuser;

user webuser;

2. PHP-FPM

Bearbeiten Sie /etc/php/7.2/fpm/pool.d/www.conf.

user = webuser
group = webuser
...
listen.owner = webuser
listen.group = webuser
1
AboElnouR