ちょっと先の未来クイズ第4問

Apacheを起動しようとしたところ「make_sock: could not bind to address 0.0.0.0:80」というエラーが出ました。ネットの記事を調べてみると、ポート80が他のアプリケーションで使われているために起こる問題で、以下の手順でポート80を使っているアプリケーションを特定し止めることができると書いてありました。
(1)コマンドプロンプトでnetstat -oanを実行
(2)0.0.0.0:80 を使用している [PID] を確認
(3)タスクマネージャ>プロセス を開き、表示>列の選択 で、「PID(プロセル ID)(P)」をチェックして表示。
(4)ステップ(2)で確認したPIDを使用しているアプリケーションを特定。

netstat-oanで調べたところポート80のPIDは1792(状態はLISTENING)でした。
しかしながらタスクマネージャーのプロセスにあるPID列にはこの1792が表示されませんでした。


なぜタスクマネージャーのプロセスに表示されないのでしょうか
この場合、PID1792が何のアプリケーションなのかを知るにはどうしたらよいのでしょうか

教えてくださいますようお願いします

A 回答 (4件)

Apacheのconfigでポートを変更できたはずです。



80がすでに使用されていて変更したくない、あるいはできないならApacheの方を8080などに変更しましょう。

80は普通HTTP。

「netstat -b」は(Windowsの場合)管理者権限が必要なので、スタートメニューからコマンドプロンプトを実行する場合は右クリックで「管理者として実行」しましょう、

ポートをどのアプリケーションが使用しているかを調べるには「netstat -b」のほうが簡単かと・・・
それにタスクプロセスを詳しく調べたければWindows標準のタスクマネージャではなくProcess Explorerなどを使用しましょう。

ちなみに、サーバーとなるアプリを何もインストールしていないWindows7だと80番ポートは使用されていません。
    • good
    • 0
この回答へのお礼

「管理者として実行」というやり方があることを初めて知りました。
丁寧なご回答ありがとうございます

お礼日時:2011/11/12 19:37

# なぜタスクマネージャーのプロセスに表示されないのでしょうか



権限の問題という可能性もあります。タスクマネージャーは基本的にユーザーが起動したプロセスのみを表示します。そのため、上位権限で自動起動されたものが表示されていないだけという可能性もあります。

現在ログインしているユーザの権限が弱いということはありませんか?もしそうなら上位権限のユーザで起動してみると表示されるようになると思います。
    • good
    • 0
この回答へのお礼

なるほど、タスクマネージャーでは権限によって表示されないものもあるのですね。
ありがとうございます

お礼日時:2011/11/12 19:36

コマンドプロンプトで「netstat -b」を実行すれば使用中のポート番号と、ポートを使っているアプリケーションの実行ファイル名が表示されます。


あとは、表示された実行ファイルの名称からアプリ名を判断して、分からなければググレばOK。
他の人の例ですと、Skypeが80番ポートを使っていたなんて場合もあるみたいですよ。
    • good
    • 0
この回答へのお礼

ありがとうございます
netstat -bという手段は初めて知りました

お礼日時:2011/11/12 19:35

OSが何か不明ですが・・・・



タスクマネージャのプロセス一覧で、「全ユーザーのプロセスを表示する」にチェックを入れましたか?
或いは「サービス」タブの方でPIDを確認できます。
    • good
    • 0
この回答へのお礼

情報が不足してすみません
Windows7 HomePremiumでした
分かりにくい質問だったにも関わらずお答えいただきありがとうございます

お礼日時:2011/11/12 19:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報