2

Windows マシンに 2 つの異なる apache2.2 サービスを 2 つインストールしたいと考えています。すでにインストールしてポート 80 と 443 で実行しています。サーバーのインストール ディレクトリをコピーして、別の場所に貼り付けました。httpd.conf に入り、Listen 80 から Listen 8000 に変更しました。また、Listen 443 を Listen 8001 に変更しました。

サービスとしてインストールできますが、 にエラーがあると表示されhttpd.confます。

サービスを開始しようとすると、次のように表示されます。

make_sock: could not bind to address 0.0.0.0:80 no listening sockets available, shutting down

構成ファイルのどこにも、ポート 80 をリッスンするように指示されていません。

何が原因でしょうか?

編集

コピーした元の Apache インストールの構成ファイルを変更すると、エラー メッセージが変更されることがわかりました。

たとえば、使用されていないポートでリッスンするように元の構成ファイルを変更すると、新しい Apache サービスを開始しようとすると、エラー メッセージが表示されなくなります。ただし、タスクマネージャーでは、サービスが実行中として表示されず、STOPPED.

サービスをアンインストールし、フラグを使用して正しい構成ファイルを指すように再インストールしましたが-f、何も変わりませんでした。コピーしたときに保持される内部ポインターまたは何かが必要なようですか?

また、インストーラーからApacheをインストールしようとしました.msiが、すでにApacheがインストールされているため、インストールされません。

2回目の編集

これをもっと早く見たかったです。Using Apache HTTP Server on Microsoft Windowsによると、ソースから Apache をビルドする必要があるかもしれません。

バイナリ インストーラでは、同じコンピュータに 2 つのバージョンの Apache 2.3 をインストールできないことに注意してください。ただし、1.3 シリーズのバージョンと 2.3 シリーズのバージョンを同じコンピューターに問題なくインストールできます。同じコンピューターに 2 つの異なる 2.3 バージョンが必要な場合は、ソースから Apache をコンパイルしてインストールする必要があります。

私はこのようなことをしたことがないので、誰かがこれをもう少し明確に説明できますか?

4

2 に答える 2

5

解決策は、元のApacheインストールディレクトリに移動して実行していました。

C:\original-apache-install\bin> httpd -k install -n "new service name" -f "new/config/file/location"

インストールをコピーして別の場所に貼り付けるだけで、元の構成ファイルとの関係が維持され、それが指しているものを変更できませんでした。新しいインストールディレクトリで上記のコマンドを実行すると、機能しませんでした。例:

C:\new-pasted-apache\bin> httpd -k install -n "new service name" -f "new/config/file/location"
于 2012-05-02T15:17:08.373 に答える
0

すでに述べたコマンドを使用して両方のサービスを別々にインストールすることにより、Apache の 2 つの異なる 2.4.x バージョンを正常にインストールしました。

C:\Apache2.4.23> httpd -k install -n "Apache2.4.23" -f "C:/Apache2.4.23/conf/httpd.conf"

C:\Apache2.4.12\bin> httpd -k install -n "Apache2.4.12" -f "C:/Apache2.4.12/conf/httpd.conf"

Windows の「サービス」インターフェイスで両方のサービスを確認したところ、seconds サービスが最初にインストールされたサービスと同じ実行可能パスを持っていることに気付きました。regedit を使用してサービスを編集することで修正しました (sc コマンドは、実行可能パスに追加されるパラメーター「-k runservice」を受け入れなかったため)。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services

参照: https://superuser.com/questions/222238/how-to-change-path-to-executable-for-a-windows-service/252850#252850

于 2016-12-14T07:54:39.903 に答える