"Yapılandırma dosyası /etc/nginx/nginx.conf testi başarısız oldu": Bunun neden olduğunu nasıl bilebilirim?


91

Bunu denemek çaylak bir nginx olduğum bu ubuntu 12.04 üzerinde nginx 1.1.19 üzerinde öğretici. Bu nginx yapılandırma dosyasına sahibim .

Bu komutu çalıştırdığımda test başarısız oluyor:

$ sudo service nginx restart
Restarting nginx: nginx: [crit] pread() "/etc/nginx/sites-enabled/csv" failed (21: Is a directory)
nginx: configuration file /etc/nginx/nginx.conf test failed

Nginx.conf testinin neden başarısız olduğunu nasıl anlarım?


1
"/ Etc / ngix / sites-etkin" ayarınızda hala "varsayılan" var mı?
RickyA

@RickyA "varsayılan" dosyayı mı kastediyorsunuz? Evet, o dosya hala o dizinde bulunuyor. Bu dosyayı taşıdım ve nginx -s yeniden yüklemesini çalıştırdım ve sunucudan aynı davranışı görmeye devam
ettim

hata csv dosyasından bahseder, bu dosyayı sitelerin etkin olduğu kontrol edin
Mohammad AbuShady

1
Ad sudo service nginx restart) Nginx'in bir CLI aracı da vardır: nginx -s reloaddeğişmesi durumunda yapılandırmayı yeniden yüklemek için. Bu çok daha hızlı.
kaiser

Yanıtlar:


168

sudo nginx -t tüm dosyaları test etmeli ve hataları ve uyarı konumlarını döndürmelidir


1
yalnızca bir dosyayı test ediyor, yani: /etc/nginx/nginx.conf ancak siteleri etkin / varsayılanı nasıl test edebilirim?
aitchkhan

4
bunların varsayılan dosyasına dahil edilir sürece o her test olacağını düşünüyorum, daha sonra kullanmayı deneyin varsayılan yapılandırma dosyası yolu kullanarak değilse (ı varsayarsak hangi?) -cbayrağı, bu yüzdennginx -c /etc/nginx/sites-enabled/default -t
Mohammad AbuShady

@MohammadAbuShady'nin söylediğini doğrulayabilir. Manpage için -tbiraz belirsiz bir şekilde Çalıştırma yazsa da , sadece yapılandırma dosyasını test edin. Nginx, doğru sözdizimi için yapılandırmayı kontrol eder ve ardından yapılandırmada belirtilen dosyaları açmaya çalışır. dosyalar sadece var olup olmadıklarını kontrol etmekle kalmaz, aynı zamanda ayrıştırılır. Beklendiği gibi, hata bulunursa çıkış kodu 1, aksi halde 0'dır.
Günther Eberl

5

Bu belirli komutlar benim için çalıştı. sudo apt-get remove --purge nginx nginx-full nginx-common

ve sudo apt-get install nginx

Bu yanıta kredi stackexchnage


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.