Nachdem ich die Version 0.7.x entfernt hatte, die in den Debian-Standardpaketen mitgeliefert wurde, habe ich die Version 1.4.1 von nginx aus dem Quellcode installiert.
Es ist möglich, Nginx zu starten, service nginx start
und ich sehe, dass Nginx den Port 80 reserviert, wenn ich Netstat ausführe.
netstat -apn | grep nginx
Ausgabe:
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 3115/nginx
Das Problem ist, wenn ich das tue service nginx status
oder service nginx stop
diese Meldung erhalte:
konnte nicht auf die PID-Datei für nginx zugreifen … fehlgeschlagen!
Wie kann ich das beheben? Und wie kann ich dieses Problem verhindern?
EDIT: Lösung
remove nginx
- dann gehe zur Quelle und
./configure --pid-path=/var/run/nginx.pid
make
checkinstall make install
Antwort1
Debian hat nginx wahrscheinlich für sein Paket so konfiguriert/gepatcht, dass die PID-Datei an einem bestimmten Ort abgelegt wird, was standardmäßig nicht der Fall ist. Wenn Sie es durch etwas ersetzt haben, das aus dem Quellcode kompiliert wurde, entspricht es nicht den Erwartungen der Service-Infrastruktur.
Ich würde mir ansehen, welche Patches und Konfigurationsoptionen von den Debian-Leuten vorgenommen wurden, und Ihre Version 1.4.x mit den Optionen zum Platzieren der PID-Datei an derselben Stelle neu kompilieren.
Wie kann man diese Art von Problem verhindern? Entweder man erledigt die Dinge über Pakete oder man kompiliert aus dem Quellcode, aber nicht beides. Oder man muss dabei besonders vorsichtig sein, da Dinge kaputt gehen.