アプリ版:「スタンプのみでお礼する」機能のリリースについて

PHP+MySQLでの作業を行うためにローカルに開発環境を作りました。
最初は、apacheも起動しており、まったく問題なく作業ができておりました。
その後、他の開発環境をつくるために、ボーランドC++、VisualStudio6.0、VisualStudio.NETを入れました。
しかし・・・それからapacheが起動しなくなりました。
原因がまったくわかりません。
何が原因なのか、わかる方いらっしゃいましたら、ご教授下さいませ。

Please wait [Bitte warten] Can't start server: Bind on TCP/IP port: No error
とかいうメッセージが出ます。

A 回答 (11件中1~10件)

たびたびすみません。


手元の環境で試したところ、どうもIISは、

A.既定のWebサイトで使うIPアドレスを特定しても
 全てのIPアドレスでListenしてしまう。
 (ソケット プーリング機能のため)
 →無効にするには、別途手順が必要
 http://support.microsoft.com/kb/238131/JA/
B.SSLを使っていない(証明書をインストールしていない)場合、
 全てのIPアドレスでPort443をListenしてしまう。
 (IPアドレスを固定し、A.の対策を行ったとしても)

ということで、Apacheと共存させるもっとも簡単な方法は、
「Apache側のListenポート(httpd.confとssl.conf両方)を80,443から変えてしまう」
ということになるようです。
その際、IPアドレスは同じものにしても大丈夫だと思われます。

だいぶ遠回りというか、無駄足を踏ませてしまったかもしれません。
すみませんが、試してみていただけますか?
    • good
    • 0
この回答へのお礼

ありがとうございます。

Apacheの方の、httpd.conf内のListenに8080ポートを指定。
ssl.conf内のListen443が競合していたようなので、444に変更しました。
そうしたら、Apache起動しました。

http://localhost:8080/
で、無事アクセス確認できました。

どうも、この度は、ご親切にお付き合い下さり、またいろいろお調べ下さって助かりました!
私の方も、今回のことで、かなり勉強ができました。

どうも、ありがとうございました。

お礼日時:2005/03/28 18:37

IISはsvchost.exeを介して起動しているので、


inetinfo.exeではないです・・・

それからNo.7の補足で、
make_sock: could not bind to address 0.0.0.0:443
となっているので、port443の競合も調べたほうがいいですね。

netstatのポート80と443をlistenしているPIDに対して、tasklistの結果と照らし合わせてください。

この回答への補足

svchost.exe部分を、探ってみました。

tasklist /svcの結果(svchost.exeのみ抜粋)
イメージ名 PID サービス
SVCHOST.EXE 924 Dnscache
SVCHOST.EXE 992 LmHosts, RemoteRegistry, SSDPSRV, WebClient

で、、PID:924,992の該当部分のみを抜粋すると、
netstat -oanの結果
Proto Local Address Foreign Address State PID
UDP 0.0.0.0:1026 *:* 924
UDP 0.0.0.0:1038 *:* 924
UDP 127.0.0.1:1900 *:* 992
UDP 192.168.0.1:1900 *:* 992
UDP 192.168.104.29:1900 *:* 992

となっていました。

ちなみに、netstatのポート80と443をlistenしているPIDに対して、
tasklistの結果と照らし合わせると、
イメージ名 PID サービス
netinfo.exe 2012 IISADMIN, SMTPSVC, W3SVC
が該当することになります。

ssl.conf内に、Listen 443と記述されているところがあったので、
Listen 444(適当)にして、Apacheを起動してみるとやはり起動はしませんでしたが、
出力メッセージが以下のように、IPアドレス部分が [DHCPで振られるアドレス]:80に変わりました。
----------------------------------
Please wait [Bitte warten] (OS 10048)通常、各ソケット アドレスに対してプロトコル
、ネットワーク アドレス、またはポートのどれか 1 つのみを使用できます。 : make_s
ock: could not bind to address 192.168.104.29:80
no listening sockets available, shutting down
Unable to open logs

補足日時:2005/03/28 17:56
    • good
    • 0

設定では、


ApacheはDHCPで取ったアドレスのPort80、
IISはループバックアドレスのPort80
なんですよね。

現在、どのプロセスがどのポートをListenしているか、調べてみましょうか。

netstat -oan
でLocal IP:PortとPID(プロセス番号)の対応を調べて、
tasklist /svc
でプログラムのイメージ名とPIDの対応が分かります。

TCP Port 80でListenしているプロセスを列挙してみてください。

参考URL:http://www.atmarkit.co.jp/fwin2k/win2ktips/236po …

この回答への補足

ありがとうございます。
では、お言葉に甘えて、お願いできればと思います。
次の情報があれば、おわかりになりますでしょうか?

------------------------------------------------
inetinfo.exe が、IIS(IISサービスのプロセス)だと思うので以下に書き出した。
PIDが“2012”ということで、2012に対応している部分だけを列挙します。
(Apacheは起動できないので、リストアップされてないようです)

イメージ名 PID サービス
inetinfo.exe 2012 IISADMIN, SMTPSVC, W3SVC

Proto Local Address Foreign Address State PID
TCP 0.0.0.0:25 0.0.0.0:0 LISTENING 2012
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 2012
TCP 0.0.0.0:443 0.0.0.0:0 LISTENING 2012
TCP 0.0.0.0:1025 0.0.0.0:0 LISTENING 2012
UDP 0.0.0.0:3456 *:* 2012

設定としては、現在のところ、
ApacheはDHCPで振られるアドレスのPort80、
IISはループバックアドレスのPort80
にしており、
IISとApacheは、以下のように設定してあります。

<IIS>
IP192.168.0.1のポート80(ループバックアドレス)で設定。
<Apache>
httpd.conf内に、Listen [DHCPで振られるアドレス]:80 と記述。
(ちなみに、ssl.conf内に、Listen 443と記述されているところあり)

補足日時:2005/03/28 17:07
    • good
    • 0

Apacheの設定変更がうまくいかないのであれば、IISのIPアドレスを変更してください。



No.3で回答したとおり、


IISに特定のIPアドレスを関連付けるには、管理ツール→インターネット サービス マネージャ→既定のWebサイトのIPアドレスで設定します。

で試してください。

この回答への補足

インターネットインフォメーションサービスを起動し、既存WebサイトのプロパティのWebサイトで、IPアドレスが“(未使用のIPアドレスすべて)”になっていたのを、作成したIPアドレス“192.168.0.1”に選択しました。
念のため、PC再起動し、Apacheを起動してみましたが、やはりだめでした。
もうしばらく、格闘してみたいとは思いますが・・

補足日時:2005/03/28 15:33
    • good
    • 0

ループバックアダプターは本物のNICを必要としません。


あくまでバーチャルな、そのPCの中だけに見えるアダプターです。
追加してもスロットやポートは消費しません。

参考URL:http://support.microsoft.com/kb/839013/ja

この回答への補足

ループバックアダプターを追加し、IPアドレスを、192.168.0.1に設定しましたが、同じようなエラーとなります。

<エラー内容>
(OS 10048)通常、各ソケット アドレスに対してプロトコル、ネットワーク アドレス、ま
たはポートのどれか 1 つのみを使用できます。 : make_sock: could not bind to addr
ess 0.0.0.0:443
no listening sockets available, shutting down
Unable to open logs
...

ちなみに、httpd.conf の Listen の箇所を以下のように記述しました。
Listen 192.168.0.1:8000

どこがおかしいのでしょうか?
もし、おわかりになるようでしたら、ご教授下さいませ。

補足日時:2005/03/26 17:35
    • good
    • 0

ダミーのネットワークインタフェースカードを追加して、そこにダミーのIPアドレスを追加する方法も、試してもいいかもしれません。



そうすると、NICが2枚あって、片方はDHCP、もう片方はダミーのネットワークになります。

ダミーのNICをループバックアダプターと呼びます。追加方法は参考URLのとおりです。

ループバックアダプターはそのコンピュータからしかアクセスできないので、ほかのコンピュータからアクセスされないWebサーバ(IIS or Apache)をループバックアドレスで設定すればよいでしょう。

参考URL:http://support.microsoft.com/kb/839013/ja
    • good
    • 0
この回答へのお礼

そうですね、現在使用中のLANポートはオンボードなので、NICが追加できれば設定できそうですが、スリム型PCのためカード追加は不可能かもしれません・・
それと、NICが社内にあるかどうかは、ちょっと不明です。
ただ、自宅PCで同じ環境を作る際の参考になります。
ありがとうございました。

お礼日時:2005/03/25 14:36

IISを変更するとあとあと面倒そうなので、apacheを変更するほうがいいです。



apache.confの

Listen 80
の行を
Listen 8000
に変更します。
これで、apacheが起動できます。

次に、ブラウザでこれまで
http://localhost/
でアクセスしていたところを
http://localhost:8000/
でアクセスしてみてください。apacheに接続できるはずです。

IISが必要なくなれば、IISをアンインストールしても、
8000は別に問題ないですので、そのまま動かしてもいいでしょう。ただし、href要素や、src要素で http:// から書いてあるところは正しく修正してください。(localhostでやってる開発環境でそんなことはないと思いますけど、念のため)

この回答への補足

ご回答、ありがとうございます。

apache.confは探してみましたがありませんでした。
httpd.confファイルでいいんですよね?

Listen 80
の行を
Listen 8000
に変更してみましたが、やはり同じく、apacheは起動できませんでした。

ポート8000番は、特にWindows環境で何か設定しておく必要とかはないものなのでしょうか?

補足日時:2005/03/25 14:27
    • good
    • 0

もしPCを業務用のネットワークに接続していて、IPアドレスを追加したい場合、ネットワーク管理者に依頼して、静的なIPアドレスを2つ取得し、DHCPを無効にした後、2つとも設定してください。


ダミーのIPを使う場合も、管理者に必ず許可を得てください。

管理者が静的なアドレスをくれない場合は、業務用のネットワークから切り離した開発用ネットワークを作れば、その中であなたの好きなようにアドレスを割り当て可能です。

または、先のコメントでも少し触れましたが、IPアドレスは1つでも、TCPポートを変えることでも対応可能です。アドレスの取得も無理、開発用ネットワーク構築も無理、ということであればこちらを試してみてください。

この回答への補足

NW管理者に聞いてみたところ、静的に割り当てるのは管理上避けたいので、ポートでやって欲しいとのことでした。
ポート追加する場合、具体的に、どのようにすればよろしいでしょうか?
ご面倒なことですいませんが、ご教授いただければ助かります。

補足日時:2005/03/24 18:43
    • good
    • 0

apacheとIISがTCP port 80で競合していませんか?



もしそうなら、簡単な解決策としては、PCにIPアドレスを2つ設定し、片方をapacheに、残りをIISに割り当てる方法があるそうです。
参考:http://www.experts-exchange.com/Web/Web_Servers/ …

PCにIPアドレスを2つ設定する方法は、ネットワーク接続(ローカルエリア接続など)のプロパティで、
インターネットプロトコル(TCP/IP)のプロパティ→詳細構成→IPアドレス 追加
でできます。

IISに特定のIPアドレスを関連付けるには、管理ツール→インターネット サービス マネージャ→既定のWebサイトのIPアドレスで設定します。
さらにIIS6の場合はこちらが参考になるでしょう。
http://support.microsoft.com/kb/813368/ja

Apacheの場合は、こちらが参考になるでしょう。
http://httpd.apache.org/docs-2.0/bind.html
http://httpd.apache.org/docs-2.0/mod/mpm_common. …

それか、1つのIPアドレスで、別々のポートを使うようにIISとApacheを設定する方法もあります。やりかたは上記とほとんど同じで、IPアドレスを設定するところの近くにTCPポートを設定する項目があるので、そちらを変更します。

この回答への補足

ご回答、ありがとうございました。
IISをアンインストしようかとも思いましたが、開発環境としてIISが必要となるかどうかちょっとまだわからないので、お教えいただいた方法で試してみたいと思っています。
すいません、ご教授いただけると助かります。
ちなみに、TCP/IPプロパティ→詳細設定では、IPアドレスは“DHCP有効”となっていて会社内のLANにつながっています。
追加する場合、IPアドレスは適当(ダミー?)を用いればいいのでしょうか?
その場合、IPアドレスはいくつにすれば良いでしょうか?

補足日時:2005/03/24 15:42
    • good
    • 0

あ、エンター押しすぎ…



#1の回答をやり直しです。
IISがインストールされていないか確認して下さい。
VisualStudio6に付属しているVisual InterDevをインストールしたら、IISがインストールされたと思います。
Visual InterDevが必要ないならアンインストールして、IISもアンインストールしてください。その場合、必要ないMSDEも一緒にアンインストールしてくださいね。
    • good
    • 0
この回答へのお礼

ご回答、ありがとうございました。
原因がわかっただけでも安心しました。
わからなければOSからセットアップするところでした。
OSはWindowsXPですが、VS.NETを入れる際に見事にIISをインストールしてしまいました。
VS6はその後から入れましたが、Visual InterDevとMSDEは入れてないと思います。
開発環境としてIISが必要となるかどうかちょっとまだわからないので、ANo.3の方の方法をちょっと試してみようと思います。

お礼日時:2005/03/24 15:41

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