#0. 結論
nginxが起動できない原因は、apacheが動いていたからだった。
下記のコマンドでapacheを終了させることで、解決した。
sudo service apache2 stop
#1. 実行環境/バージョン
Ubuntu 20.04
nginx/1.18.0 (Ubuntu)
#2. nginxのインストール
下記のコマンドで、nginxのインストールは無事終了
sudo apt update
sudo apt install -y nginx
#3. nginxの起動
下記のコードで、nginxの起動を試みるが...
sudo service nginx start
結果は以下の通り。何度やっても同じ。
Job for nginx.service failed because the control process exited with error code.
See "systemctl status nginx.service" and "journalctl -xe" for details.
大人しく、「systemctl status nginx.service」、「journalctl -xe」を実行しても解決せず。
#3. エラーログをのぞいてみる
とりあえずnginxのエラーログをみようということで、下記を実行
sudo cat /var/log/nginx/error.log
すると、どうやらポートがすでに使われているらしい。ふーむ。
2021/01/13 14:48:51 [emerg] 940#940: bind() to 0.0.0.0:80 failed (98: Address already in use)
2021/01/13 14:48:51 [emerg] 940#940: bind() to [::]:80 failed (98: Address already in use)
2021/01/13 14:48:51 [emerg] 940#940: bind() to 0.0.0.0:80 failed (98: Address already in use)
2021/01/13 14:48:51 [emerg] 940#940: bind() to [::]:80 failed (98: Address already in use)
2021/01/13 14:48:51 [emerg] 940#940: bind() to 0.0.0.0:80 failed (98: Address already in use)
2021/01/13 14:48:51 [emerg] 940#940: bind() to [::]:80 failed (98: Address already in use)
2021/01/13 14:48:51 [emerg] 940#940: bind() to 0.0.0.0:80 failed (98: Address already in use)
2021/01/13 14:48:51 [emerg] 940#940: bind() to [::]:80 failed (98: Address already in use)
2021/01/13 14:48:51 [emerg] 940#940: bind() to 0.0.0.0:80 failed (98: Address already in use)
2021/01/13 14:48:51 [emerg] 940#940: bind() to [::]:80 failed (98: Address already in use)
2021/01/13 14:48:51 [emerg] 940#940: still could not bind()
#4. 実行中のプロセスをのぞいてみる
じゃあ誰が使ってるんだよということで、誰が80番のポートを使用しているかを下記のコマンドで確認
sudo lsof -i:80
ん...?なんでapachが動いてるん??動かした記憶ないんだけど。。。
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
apache2 9335 root 4u IPv6 39599 0t0 TCP *:http (LISTEN)
apache2 58125 www-data 4u IPv6 39599 0t0 TCP *:http (LISTEN)
apache2 58126 www-data 4u IPv6 39599 0t0 TCP *:http (LISTEN)
apache2 58128 www-data 4u IPv6 39599 0t0 TCP *:http (LISTEN)
apache2 58129 www-data 4u IPv6 39599 0t0 TCP *:http (LISTEN)
apache2 58130 www-data 4u IPv6 39599 0t0 TCP *:http (LISTEN)
apache2 58555 www-data 4u IPv6 39599 0t0 TCP *:http (LISTEN)
apache2 59778 www-data 4u IPv6 39599 0t0 TCP *:http (LISTEN)
#5. 実行中のプロセスを終了
apacheによって80番ポートが占領されていたことが原因っぽいので、下記のコマンドで終了してみる
sudo service apache2 stop
何も返ってこないので、無事終了したっぽい。
もう一回使用状況を確認すると
sudo lsof -i:80
何も表示されず!!これはきたのでは。
#6. nginxの起動リベンジ
さて、これでどうだ
sudo service nginx start
はい、何も返ってこず、無事起動成功~