開発サーバーに Laravel プロジェクトをプッシュした後、Apache 2 を実行できなくなったようです。
コマンドラインを実行した後:
sudo systemctl ステータス apache2
次のエラーが発生します:
● apache2.service - Apache HTTP サーバー ロード済み: ロード済み (/lib/systemd/system/apache2.service; 有効; ベンダープリセット: 有効) アクティブ: 失敗 (結果: 終了コード) 2020-02-03 月曜日 02:17:48 UTC 以降; 1 分 17 秒前 プロセス: 1631 ExecStart=/usr/sbin/apachectl start (コード = 終了、ステータス = 1/FAILURE)
Google で少し検索したところ、複数のプロセスがポート 80 を使用しているため Apache を起動できないようです。
ただし、コマンドラインを実行した後:
sudo lsof -i tcp:80
次のプロセスのリストを取得します。
コマンド PID ユーザー FD タイプ デバイス サイズ/オフ ノード名 google_ne 716 root 7u IPv4 18497 0t0 TCP instance-development-webapp-eatology.c.webapp-eatology.internal:34086->metadata.google.internal:http (確立済み) google_ac 717 root 5u IPv4 18475 0t0 TCP instance-development-webapp-eatology.c.webapp-eatology.internal:34082->metadata.google.internal:http (確立済み) google_cl 719 root 5u IPv4 18478 0t0 TCP instance-development-webapp-eatology.c.webapp-eatology.internal:34084->metadata.google.internal:http (確立済み) google_cl 719 root 6u IPv4 18402 0t0 TCP インスタンス開発ウェブアプリeatology.c.ウェブアプリeatology.internal:34080->metadata.google.internal:http (CLOSE_WAIT)
問題は、これらの各プロセスを終了する方法がわからないことです。多くのコマンド ラインを試しましたが、成功しませんでした。
ご協力いただきありがとうございます !
答え1
走る :
netstat -tulpn | grep 80
次の行を見てください:
Proto : tcp
Local address : *.*.*.*:80
Pid またはプロセス名列の値を取得します。
<pid_or_process_name>:80
pid またはプロセス名を使用して、ポート 80 を保持しているプロセスを強制終了します。
pkill -9 <process_name>
または
kill -9 <pid>
最後に、これはまだ回避策です。ポート 80 を公開するプロセスを見つけて無効にするか、構成ファイルを変更して tcp/80 以外の別のポートを指すようにする必要があります。再起動後も同じ問題が発生するためです。