Saya memiliki skrip PHP yang membuat direktori dan menampilkan gambar ke direktori. Ini berfungsi dengan baik di bawah Apache tetapi kami baru-baru ini memutuskan untuk beralih ke NGINX untuk memanfaatkan lebih banyak RAM kami yang terbatas. Saya menggunakan perintah PHP mkdir () untuk membuat direktori:
mkdir(dirname($path['image']['server']), 0755, true);
Setelah beralih ke NGINX, saya mendapatkan peringatan berikut:
Warning: mkdir(): Permission denied in ...
Saya sudah memeriksa semua izin dari direktori induk, jadi saya telah menentukan bahwa saya mungkin perlu mengubah 'pengguna' NGINX atau PHP-FPM tapi saya tidak yakin bagaimana melakukan itu (saya tidak pernah harus menentukan pengguna izin untuk APACHE). Sepertinya saya tidak dapat menemukan banyak informasi tentang ini. Bantuan apa pun akan luar biasa!
(Catatan: Selain hang-up kecil ini, beralih ke NGINX cukup mulus; Saya menggunakannya untuk pertama kalinya dan secara harfiah hanya membutuhkan waktu sekitar 10 menit untuk bangun dan berjalan dengan NGINX. Sekarang saya hanya menyetrika keluar ketegaran.)
sumber
nginx.conf
danwww.conf
secara default IIRC.Jawaban:
Jalankan nginx & php-fpm sebagai www: www
1. Nginx
Edit nginx.conf dan atur pengguna ke
www www;
2. PHP-FPM
Edit php-fpm.conf dan atur pengguna dan grup ke
www
.sumber
user www-data
). Namun, saya tidak melihat ada pengguna yang didefinisikan diphp-fpm.conf
. Haruskah saya menambahkannya ke atas menggunakan sintaks yang sama (user www www
)?[www]
bagian dan tambahkanuser=www
di baris berikutnya, dangroup=www
di baris berikutnya.[emerg] getpwnam("www") failed in /etc/nginx/nginx.conf:1 nginx: configuration file /etc/nginx/nginx.conf test failed
.Di Ubuntu 14.04 file perubahan pengguna dan kelompok di PHP-FPM adalah:
/etc/php5/fpm/pool.d/www.conf
. Dalam file ini ubah parameter ini:sumber
/etc/php/7.2/fpm/pool.d/www.conf
Untuk menjawab pertanyaan Anda yang sebenarnya adalah dengan hanya mengubah
user
barisnginx.conf
seperti:Contoh:
Pengguna pilihan untuk Nginx untuk menjalankan karena sebenarnya berbeda antara sistem operasi. Terkadang Nginx seharusnya dijalankan sebagai
www-data
. Lain waktu itu seharusnya dijalankan sebagainobody
.Pada beberapa sistem operasi (seperti Windows), bahkan tidak masalah, dan
user
saluran masuknginx.conf
dapat dikomentari atau sepenuhnya dikecualikan.sumber