Mam skrypt PHP, który tworzy katalog i wyświetla obraz w katalogu. Pod Apache działało to dobrze, ale ostatnio zdecydowaliśmy się przejść na NGINX, aby lepiej wykorzystać naszą ograniczoną pamięć RAM. Korzystam z komendy PHP mkdir (), aby utworzyć katalog:
mkdir(dirname($path['image']['server']), 0755, true);
Po przejściu na NGINX pojawia się następujące ostrzeżenie:
Warning: mkdir(): Permission denied in ...
Sprawdziłem już wszystkie uprawnienia do katalogów nadrzędnych, więc ustaliłem, że prawdopodobnie muszę zmienić „użytkownika” NGINX lub PHP-FPM, ale nie jestem pewien, jak to zrobić (nigdy nie musiałem określać użytkownika uprawnienia dla APACHE). Nie mogę znaleźć dużo informacji na ten temat. Każda pomoc byłaby świetna!
(Uwaga: Poza tym małym rozłączaniem przejście na NGINX jest dość płynne; używam go po raz pierwszy i dosłownie zajęło to około 10 minut, aby uruchomić się z NGINX. Teraz tylko prasuję załamania.)
źródło
nginx.conf
iwww.conf
domyślnie IIRC.Odpowiedzi:
Uruchom nginx i php-fpm jako www: www
1. Nginx
Edytuj plik nginx.conf i ustaw użytkownika na
www www;
2. PHP-FPM
Edytuj plik php-fpm.conf i ustaw użytkownika i grupę na
www
.źródło
user www-data
). Jednak nie widzę żadnego zdefiniowanego w użytkownikowiphp-fpm.conf
. Czy powinienem po prostu dodać go na górze za pomocą tej samej składni (user www www
)?[www]
część i dodajuser=www
w następnej linii igroup=www
następnej.[emerg] getpwnam("www") failed in /etc/nginx/nginx.conf:1 nginx: configuration file /etc/nginx/nginx.conf test failed
.W Ubuntu 14.04 plik do zmiany użytkownika i grupy w PHP-FPM jest:
/etc/php5/fpm/pool.d/www.conf
. W tym pliku zmień następujące parametry:źródło
/etc/php/7.2/fpm/pool.d/www.conf
Aby odpowiedzieć na twoje aktualne pytanie, wystarczy zmienić
user
linię w następującynginx.conf
sposób:Przykład:
Preferowany użytkownik do uruchamiania Nginx, ponieważ tak naprawdę różni się między systemami operacyjnymi. Czasami Nginx powinien działać jako
www-data
. Innym razem powinien on działać jakonobody
.W niektórych systemach operacyjnych (takich jak Windows) nie ma to nawet znaczenia, a
user
wiersznginx.conf
wejściowy można skomentować lub całkowicie wykluczyć.źródło