log kesalahan nginx sangat besar, jadi saya menghapus dan membuat yang baru, sekarang nginx tidak akan memulai

11

Saya menghapus file /var/log/nginx/error.log , dan kemudian membuat yang baru menggunakan:

sudo nano error.log

Melakukan ls -lamenunjukkan bahwa error.log dan access.log memiliki izin yang sama.

Ketika saya mencoba dan memulai nginx saya mendapatkan kesalahan:

waspada: tidak dapat membuka file log kesalahan: open () "/var/log/nginx/error.log" gagal dinyatakan.

Memperbarui

Ketika mencoba memulai nginx, saya juga melihat:

emerg: /var/run/nginx.pid gagal 13: izin ditolak.

Blankman
sumber

Jawaban:

25

Ini tidak menyelesaikan masalah Anda, tetapi di masa depan, jika Anda melakukannya

cat / dev / null> / file / you / want / to / wipe-out

Anda akan menyalin isi file tanpa apa-apa, dan tetap menjaga semua izin.

Bukan nginx-speicific, tetapi Selain itu, pastikan Anda menjalankan aplikasi sebagai pengguna yang seharusnya dijalankan. Jika Anda pernah menjalankannya sebagai root, semua izin akan dimiliki oleh root, sehingga pengguna lain tidak akan dapat menjalankannya.

Alex
sumber
Apa bedanya dengan menggunakan echo "" > /file/to/empty? Apakah keduanya sama?
Gowtham Gopalakrishnan
Itu harus sama. Selain itu, Anda dapat meninggalkan semua hal di awal dan lakukan saja> /file/to/empty
Alex
5

Cara biasa untuk memutar log dengan NginX adalah mengubah nama file, dan kemudian /etc/init.d/nginx reload. Server memulai file baru, dan Anda dapat melakukan apa yang Anda inginkan dengan yang lama.

Anda juga mungkin merasa berguna untuk mengedit konfigurasi untuk tidak login sebanyak ....

Alister Bulman
sumber
2

lihatlah di nginx config, periksa siapa server yang menjalankannya - pada perkiraan pengguna akan nginx

jadi:

chown nginx: /var/run/nginx.pid chown -R nginx: /var/log/nginx

Sebaiknya lakukan triknya.

Geraint Jones
sumber
tapi mengapa itu berhasil sebelumnya?
Blankman
1
Saya curiga karena Anda mencoba menjalankannya sebagai root, dan kemudian mencoba memulainya dengan skrip init-nya.
Geraint Jones
baik saya selalu memulainya seperti itu, hmm ....
Blankman
nginx.conf mengatakan: "user www-data"
Blankman
1

Hapus file error.log dan nginx akan membuatnya sendiri.

Martin Fjordvald
sumber
saya menghapusnya, kemudian ketika saya mencoba dan memulai nginx adalah memberi saya izin ditolak kesalahan yang sama pada file /var/log/nginx/error.log
Blankman
Hapus Log dan mulai ulang Nginx. Ini akan secara otomatis membuat Log.
WhiteHorse