Debian 標準パッケージで配信されていたバージョン 0.7.x を削除した後、ソースから nginx バージョン 1.4.1 をインストールしました。
nginx を起動することは可能でありservice nginx start
、netstat を実行すると nginx がポート 80 を予約していることがわかります。
netstat -apn | grep nginx
出力:
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 3115/nginx
問題は、私がそうするかservice nginx status
、service nginx stop
このメッセージが表示される場合です:
nginx の PID ファイルにアクセスできませんでした...失敗しました!
誰がこれを修正できますか? また、この問題を防ぐにはどうすればよいですか?
編集: 解決策
remove nginx
- 次にソースにアクセスして
./configure --pid-path=/var/run/nginx.pid
make
checkinstall make install
答え1
Debian はおそらく、デフォルトでは行わない特定の場所に pid ファイルを配置するように、パッケージの nginx を構成/パッチしました。ソースからコンパイルされたものを使用してこれを置き換えた場合、サービス インフラストラクチャの期待に一致しなくなります。
Debian の開発者が行ったパッチと設定オプションを確認し、pid ファイルを同じ場所に配置するオプションを指定して 1.4.x バージョンを再コンパイルします。
この種の問題を防ぐにはどうすればよいでしょうか。パッケージ経由で行うか、ソースからコンパイルするかのどちらか一方にしてください。両方を行うと問題が発生するため、これを行う場合は細心の注意を払う必要があることに注意してください。