Saya mengikuti proses ini untuk menginstal nginx di Lucid Server Ubuntu 10,04 saya http://library.linode.com/web-servers/nginx/installation/ubuntu-10.04-lucid
Saya tersesat setelah membuat skrip init untuk memulai nginx, dan kemudian memanggil /etc/init.d/nginx mulai. Ketika saya melakukan itu, saya mendapatkan kesalahan berikut:
Starting nginx_main: Starting /opt/nginx/sbin/nginx...
nginx: [alert] could not open error log file: open() "/opt/nginx/logs/error.log" failed (13: Permission denied)
2012/03/16 18:17:27 [emerg] 859#0: open() "/opt/nginx/logs/access.log" failed (13: Permission denied)
Satu-satunya cara saya dapat menjalankannya adalah jika saya menggunakan sudo
dan menjalankan prosesnya root
, yang tidak saya inginkan.
Saya sudah chown
seluruh direktori ( chown -R nginx:nginx /opt/nginx
) dan saya juga chmod -R 755
direktori juga.
Menambahkan user
arahan seperti yang disarankan oleh CS3 juga memberi saya kesalahan ini, tetapi dengan baris tambahan.
Starting nginx_main: Starting /opt/nginx/sbin/nginx...
nginx: [alert] could not open error log file: open() "/opt/nginx/logs/error.log" failed (13: Permission denied)
2012/03/16 18:48:34 [warn] 1606#0: the "user" directive makes sense only if the master process runs with super-user privileges, ignored in /opt/nginx/conf/nginx.conf:2
2012/03/16 18:48:34 [emerg] 1606#0: open() "/opt/nginx/logs/access.log" failed (13: Permission denied)
Ada ide?
and I've also chmod -R 755 the directory as well
Terus lakukan ini dan Anda akan membayar harga untuk itu pada akhirnya. Sangat menakutkan untuk menyaksikan berapa banyak orang di internet yang menyarankan ini sebagai pelabuhan panggilan pertama untuk "memperbaiki" masalah apa pun. Unix tidak akan memberikan umpan balik yang ramah jika Anda melakukan sesuatu yang bodoh.Jawaban:
Pertama-tama, skrip init seharusnya dijalankan
ketika Anda tidak masuk sebagai root (saat pengguna yang masuk sudo diaktifkan)
Kedua, ketika Anda menjalankan sudo /etc/init.d/nginx start ==> ia menjalankan proses master nginx sebagai proses root dan pekerja sebagai pengguna yang Anda tentukan dalam direktif pengguna nginx.conf Anda (mis. Www-data)
Bisakah Anda mengkonfirmasi apakah semua proses Anda di bawah nginx dijalankan oleh root saat mengeluarkan sudo /etc/init.d/nginx mulai?
dengan
misalnya.
Saran: Ubuntu 10,04 LTS memiliki dukungan paket ubuntu yang sangat baik dari tim nginx. Jadi, mengapa repot-repot menginstal dari sumber jika Anda tidak memiliki persyaratan untuk modul khusus di dalam nginx?
Konsultasikan di sini
Paket biner sudah dilengkapi dengan modul yang sangat dibutuhkan
sumber
Tambahkan arahan pengguna di dalam nginx.conf
sumber
5 kopek saya tentang ini
nginx -V 2>&1 | sed 's/ --/\n--/g' | grep path
.. akan memberi Anda semua jalur lain, yang harus Anda timpa dalam konfigurasi yang disediakan khusus atau dengan opsi "-g".
sumber
nginx -V 2>&1 | sed 's/ --/\n--/g' | egrep --color '.*path.*|$'
Dalam kasus saya ada referensi file yang hilang di nginx.conf saya:
peringatan error_log /var/log/nginx/error.log;
Menjadi: error_log beri peringatan;
Jadi saya tidak sengaja menghapus referensi /var/log/nginx/error.log yang menyebabkan izin ditolak pesan kesalahan.
sumber