ポート80を使用するPID:4


53

Zend Server CEをコンピューターにインストールしようとしましたが、ポイントに到達したときに、Webサーバーのポートを選択する必要がありました:「Webサーバーポート:80占有」。そこで、「netstat -o -n -a | findstr 0.0:80」と入力して、CMDでポート80を使用しているものを確認することにしました。

TCP     0.0.0.0:80     0.0.0.0:0     LISTENING     4

タスクマネージャーのプロセスとサービスでPID:4を確認します。PID 4は「システム」のようです。

だから、私が知りたいのは、どのように「システム」(PID:4)がポート80を使用するのを止めることができるのですか?

情報: Windows 7 64ビットを使用しています。Zend Server CE 5.5.0


「GET / HTTP / 1.1」を127.0.0.1にtelnetして、何が表示されるかを確認しても問題ありません。
ローレンス

@ultrasawbladeどうやってそれを行うのですか?
-apokaliptis

1
実行telnet 127.0.0.1 80し、その行を過ぎてEnterキーを2回押します。Windows 7を実行している場合は、最初に「Windows機能の追加と削除」からtelnetクライアントをインストールする必要があります。
-billc.cn

1
私にとっては、Windows 8 64のWorld Wide Web Publishingサービスがうまくいきました。

2
HTTPサービスの状態は、PID 4の場合に実行中のサービスを識別するのに役立ちます。実行netsh http show servicestateして、登録済みURLまたはログ情報を確認します。
pazadev

回答:


78

OK、しばらくウェブを検索した後、問題の解決策を見つけました。

問題を診断して解決するには、次の手順に従ってください。

  1. ポート80をリッスンしているPIDを取得します。 netstat -nao | find ":80"

  2. タスクマネージャーを開き、[プロセス]タブに移動して、[PID]をMenu/View/Select Columns…オンにし、最後の手順で見つかったPIDを使用してプロセスを探します。

  3. 通常のアプリケーションまたはIISの場合は、無効にするかアンインストールします。一部のプログラム(Skypeなど)には、ポート80の使用を無効にするオプションがあります。

  4. それがある場合はシステムプロセス -PID 4 -あなたは、Windowsリモート管理などの別のサービスでオンデマンドで開始されHTTP.sysのドライバを、無効にするか、Windows 7または2008でスプーラを印刷する必要があります。

    無効にする方法は2つありますが、最初の方法の方が安全です。

    1。

    • デバイスマネージャーに移動し、メニュー/ビューから[非表示のデバイスを表示]を選択し、[非プラグアンドプレイドライバー] / HTTPに移動し、ダブルクリックして無効にします(または手動に設定します。一部のサービスはそれに依存します)。

    • 再起動してnetstat -nao | find ":80"80がまだ使用されているかどうかを確認するために使用します。

    2。

    • RegEditを起動します。

    • に行く HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP

    • 「開始」の値を4に変更します。これは無効を意味します。

    • コンピューターを再起動します。

私の解決策はステップ4でした。


4
Windows Server 2012のデバイスマネージャーの「非プラグアンドプレイドライバー」ツリーはどこにありますか?
マリアイネスパルニサリ14

4
デバイスマネージャーのアプローチは、Windows 8以降では使用できません。
ロディ

1
レジストリソリューションはWin8で機能しました。Linuxが恋しい。
アリクエルジンキラカ15

5
これを少し調整してください。Windowsで「HTTP」サービスを無効にすると、その依存関係がすべて無効になります。ポート80を使用する特定のサービスは、「HTTP」の依存関係である「W3SVC」(World Wide Web発行サービス)です。これは、管理コマンドプロンプトから「net stop W3SVC」を実行し、「netstat -n -o -a | 「:80」を見つけて、ポート80にリストされていないことを確認します。代わりに、World Wide Web Publishing Service(W3SVC)を無効にすることをお勧めします(SSDP、印刷スプーラー、HomeGroup、および機能検出を無効にしたくない場合)。
-chriv

2
私はこの指示をまったく理解していませんどこにもメニュー項目Go to device manager, select “show hidden devices” from menu/view, go to “Non-Plug and Play Driver”/HTTP, double click it to disable it (or set it to manual, some services depended on it).はありませんNon-Plug and Play Driver”/HTTP
マーティンエルリック

25

Windows 8 Pro-ビルド9200をインストールした後、この問題が発生しました。いくつかの方法を試しましたが、いずれも機能しませんでした。しかし、これはそれを修正しました。

HTTP.SYSのバインドされたIPアドレスを変更する必要があります

netsh http add iplisten ipaddress=::

http://www.mikeplate.com/2011/11/06/stop-http-sys-from-listening-on-port-80-in-windows/


このソリューションは、http.sysを使用しないサーバーと実行するサーバーの両方を実行する必要がある場合に最適です。
トールヤコブセン

私のためにも働いた。それは実際に何をしますか?
赤目

1
ポートが解放されたが、他の副作用もあったため、これで問題が解決したと思いました。具体的には、この変更後、IISを介して特定のホスト名にバインドできませんでした。元に戻すにはnetsh http delete iplisten ipaddress=::
-cchamberlain

これはうまくいきましたが、副作用がありました。同じコマンドを使用するが、IPアドレスが異なる代替案については、以下の回答を参照してください。
デイブモートン

6

私の場合、それはWebMatrixでした。ここで可能な解決策(これを含む)を参照してください:http : //www.sitepoint.com/unblock-port-80-on-windows-run-apache/

基本的に:

管理ツールからサービスを開き、「Web Deployment Agent Service」を見つけます。サービスを停止し、スタートアップの種類を「手動」に設定します。

Web Deployment Agent ServiceはWebMatrixでデプロイされ、私の悩みの種でした。また、MicrosoftのWeb Platform Installerを使用してインストールされた他のアプリケーションとともに配布される場合もあります。


また、私が抱えていた問題(Windows 10)
-toby1kenobi

5

PID 4は、システムカーネルの一部である「システム」プロセスになるようにハードコードされています。

ポートがシステムによって占有されている場合は、おそらくIISが有効になっています。https://stackoverflow.com/questions/1430141/port-80-is-being-used-by-system-pid-4-what-is-thatを参照してください


IIS 7.5 Expressをアンインストールしました。おそらく再起動する必要がありますか?私はそれを試してみるつもりです。
apokaliptis

いや。問題は解決しません。
apokaliptis

IIS 7.0(Windows 7に同梱されているもの)もインストールされていますか?通常、単にw3svcを停止すると、ポートは閉じられます。
-billc.cn

いや。私の知る限り、他のウェブサーバーもインストールすべきではありません。
-apokaliptis

再びnetstatを実行できますが、リッスンしているポートのみをポストできますか?
-billc.cn

1

コマンドを使用してnetsh http add iplisten ipaddress=::実際にApacheがWindows 10 64ビットシステムで起動できるようにしましたが、hostsファイルに適切なエントリがあっても、localhostの::代わりにバインドされているため、localhostにアクセスしようとして大混乱を引き起こしました127.0.0.1。私がやったことは、代わりにこのコマンドを使用することでした: netsh http add iplisten ipaddress=0.0.0.0 これは機能しただけでなく、ローカルホストへのブラウザアクセスも許可しました。私にとってこれは優れたソリューションでした。


0

サービスリストを開く「World Wide Web発行サービス」を見つけて停止し、手動に設定します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.