プロが教えるわが家の防犯対策術!

PHP5をやるべく入門書も買ってとりあえずapacheをインストールしました。

2.0で、インストールは成功して起動(常駐?)させて緑を確認しましたが
http://localhost http://127.0.0.1/ 共におそらくタイムアウトで表示できませんになりました。

ウイルス対策ソフト、Google Toolberを切っても変わりませんでした。
環境はWindowsXPでルーターでの無線LANです。
また、hostsを確認しましたが書き換えはありませんでした。
プロキシーは使っておらず設定を自動的に検出するになっています。

error.logを見ると
(OS 10022)無効な引数が提供されました・・・・・・
とずーーーーっと何十行も続いています。

このままでは手付かずに全てが終わるので回答お願いします。

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

>: make_sock: could not bind to address 0.0.0.0:80


>no listening sockets avaiable,
が表示された状態で、またコマンドラインから
netstat -ano
すると
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING プロセスIDの数字
が出ますよね?
(この状態でもTCP 0.0.0.0:80が出ないなら、80portを占有しているアプリケーションが勝手に起動したり、いつの間にか停止していると言うことですが、、)
プロセスIDからアプリケーションを割り出す方法は
#6さんが回答されています。
SP2ならbオプションで一発ですがsp2以外なら#6さんの方法でってことで、、、

で、そのアプリケーションがapacheなら
Apache Monitorやスタートメニューでapacheを停止させてから
もう一度 test.bat をwクリックしてみる
    • good
    • 0
この回答へのお礼

やっと・・・できました。
ウイルス対策のアンインストール等やったらできました。

本当に無知で要領の悪い質問者だったと思いますが、
ここまでこうして頑張れたのはみなさんのおかげです。

ここまで親身に回答してくださった回答者様方には本当に
感謝してもし尽くせないほどです。
本当に本当にありがとうございました。

お礼日時:2006/09/22 17:59

>:80はないようです。

この部分が悪いんでしょうか。
ならばApacheも他のアプリケーションも80portを専有していないと言うことです
普通に考えればApacheが起動していないのだと思います。

・念のため、httpd.confのListen 行を確認してみてください
 Listen 80 となっていますよね? この80がApacheでlistenするport番号です。

で、無駄かもしれませんが コマンドラインからの起動をしてみてください
いちいちコマンドを打つのも面倒でしょうから
apache.exeのあるフォルダ(デフォルトではC:\Program Files\Apache Group\Apache2\bin)
に、メモ帳で次の内容の test.bat と言うfileを置いてwクリックしてください

apache -k start
pause

この2行だけです。
wクリックすると
C:\Program Files\Apache Group\Apache2\bin>apache -k start の後ろに何らかのメッセージが表示されますが
「続行するには、....」が出たらENTERを押すと閉じます

その 何らかのメッセージ が ヒントになるはずですが、、、
    • good
    • 0
この回答へのお礼

Listen 80 となっています。

後者はやってみましたら

(OS 10048)通常、各ソケット アドレスに対してプロトコル、ネットワーク アドレス、
またはポートのどれか1つのみを使用できます。
: make_sock: could not bind to address 0.0.0.0:80
no listening sockets avaiable, shutting down
unable to open logs

だそうです。
何か他のものが占有しているってことですかね。

お礼日時:2006/09/21 23:49

>これはSP2でないとできないとかあるんでしょうか?


そうです。(#11で紹介したページにも書いてあります)

というか、すみません、XPなら当然SP2かと、決め付けて考えてました

なら 取り合えず
netstat -an ですね それだとApache.exeは出ませんが
TCP  0.0.0.0:80 は出るはずです
    • good
    • 0
この回答へのお礼

いえ、頑なにSP2を拒んでいるものですいません。

Local Addressの部分ですよね。
:80はないようです。この部分が悪いんでしょうか。

お礼日時:2006/09/21 00:20

>そのページも参考してnetstat -nで調べましたら


ですから、netstat -n では駄目だと書いたつもりですが?

Apache.exeが80portで待ち受けているかどうかは
netstat -anb
です。
(#5ではその後ろに p tcpもつけてますが、これは#11に書きましたがTCPのみ表示して見やすくするだけ)

>Domainは試験サーバーであれば・・・とのことだったので適当に。
LAN内でだけなら、普通はLAN上のコンピューター名かlocalhost ですが空欄のままでも構いません
普通の半角英数字以外の文字は入れていませんよね?

>その下のはfor all...port 80です。
では間違いなく80portですね
netstat -anb で
TCP  0.0.0.0:80 ................
[Apache.exe]
が出るはずです。

他、私が検索してみたところ
1・Win32DisableAcceptEx が無ければ追加してApacheをrestart
2・Win32DisableAcceptExが既に有れば逆にコメントアウトしてrestart
3・セキュリティsoftの無効化
の3つしか無いようです。
1、と2、は試されたようですので問題は3、ですが
ウイルス対策ソフトは切って試したとありますが
これはウイルス対策ソフトのメニューで切ったということですよね?
もし、そうだとしたら、以下自己責任でお願いしますが
一旦Apacheをアンインストールして、再起動後
Apacheのフォルダごと削除します。
それからウイルス対策ソフトを一旦アンインストールしてから再起動後
改めてApacheをinstallしてみるとどうでしょうか?

セキュリティSOFTの中には、設定メニューで無効にしても
実は一部の機能が有効になっていたり
そもそもバグだらけのウイルス対策ソフトも有ります。
    • good
    • 0
この回答へのお礼

すいません、しかしnetstat -anbを実行してもnetstat ?/と同じ表示が出るだけで
これはSP2でないとできないとかあるんでしょうか?

入力は全て半角英数字でしました。

アンインストールは大変そうですがやってみます。
ちょっと時間かかりそうですが。
ありがとうございます。

お礼日時:2006/09/20 22:38

>netstat -n


>で、TIME_WAITとなっているのが待ち受けているポート番号です。
いいえ違います。それだとコネクションの終了待ち状態です
待ち受けているportを表示するには netstatのオプションに a をつける必要が有ります
http://www.atmarkit.co.jp/fwin2k/win2ktips/234ne …

私が#5で書いた netstat の後ろにつけた -anbp tcp は
a 全ての
n 数値で表示
b アプリケーション名を表示
p tcp はTCPプロトコルのみ表示(UDPは表示しない)
と言う意味です。 そのあたりはnetstat /? で説明が表示されます

## で本題ですが、うちでも2.0.55をアンインストール&フォルダごと削除してから
2.0.59を入れてみましたが
Win32DisableAcceptEx をつけても付けなくても問題なく表示できましたよ

また、他のhttpdが80をlisetnしている場合
Apacheのインストール時に既にlistenされていると
インストール中に「only for ...port8080」を選択しない限りインストールエラーになりますし
Apacheのインストール終了後にApacheを停止させておいて
他のhttpdで80をlistenさせてから、Apacheを起動しようとしても起動に失敗しますので
エラーログには記録されないはずです。

で、質問者さんがインストールした方法を伺いたいのですが
インストール中「Server Infomation」の画面で
Network Domain:
Server Name:
Administarators' email:
の欄に何を入力しましたか?
2.0系の場合 email欄に a@a などと入れれば DomainもServer nameも空でOKのはずですが?

あと、その下の
・for all....port 80
・only....port8080
のどちらを選びましたか?
    • good
    • 0
この回答へのお礼

そのページも参考してnetstat -nで調べましたら
192.168.・・・というのが自分のモノですよね?

おそらくポートが1863になっています。
これを変えなければならない、ということですか?

Domainは試験サーバーであれば・・・とのことだったので適当に。
server,はlocalhostにしました。
emailは普通にメールアドレスを入れました。

その下のはfor all...port 80です。

お礼日時:2006/09/19 23:31

IISは起動というかインストールしていないですよね?


ポート番号が80でないならブラウザで指定するか、httpd.confのlistenでポート番号を指定する必要があります。

http://127.0.0.1:8080/
↑IPアドレス:指定されたポート番号

netstat -n
で、TIME_WAITとなっているのが待ち受けているポート番号です。
    • good
    • 0
この回答へのお礼

IISはインストールしていません。

netstat -nしてみたらTIME_WAITのところは80でした。やっぱり80だったんですかね。
でも何回かnetstat -nやってると結果が変わるんですがこれは普通ですか?
最初はTIME_WAITの部分があったのに今やったらなくなってしまいました。

お礼日時:2006/09/19 17:42

http://wiz.syscon.co.jp/WIZmag030.htm
には逆に
 #Win32DisableAcceptEx ←ここをコメントアウト
で解決すると有ります。
ですが、うちのApacheWin32-2.0.55ではhttpd.confにも
httpd.default.confにもWin32DisableAcceptExと言う行が見つかりません

質問者さんがお使いのApacheのバージョンはいくつでしょうか?
ひょっとして古いバージョンのApacheをお使いなら
アンインストールしたあと、フォルダも削除してから
http://www.apache.org/dist/httpd/binaries/win32/
にいろいろありますが、2.0系だと最新は
apache_2.0.59-win32-x86-no_ssl.msi なので
これをインストールしなおしてみるとか?
    • good
    • 0
この回答へのお礼

ああ、バージョンもきちんと伝えてませんでしたね。すいません。最新の2.0.59です。
こちらも元々Win32DisableAcceptExという行はありませんね。

お礼日時:2006/09/18 23:01

No.6&7です。



エラーメッセージの最後に

>Try using the Win32DisableAcceptEx directive

とあるようですから

スタート>すべてのプログラム>Apache HTTP Server 2.0.XX>Configure Apache Server>Edit the Apache httpd.conf Configuration File

でApacheの設定ファイルを開くと最初の方下記の箇所があるのでそこに「Win32DisableAcceptEx」を追加

-------8<-------8<-------8<-------8<-------8<-------8<-------8<-------
# WinNT MPM
# ThreadsPerChild: constant number of worker threads in the server process
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule mpm_winnt.c>
ThreadsPerChild 250
MaxRequestsPerChild 0
Win32DisableAcceptEx ← 追加する
</IfModule>
-------8<-------8<-------8<-------8<-------8<-------8<-------8<-------

追加したら設定ファイルを「上書き保存」して設定ファイルを閉じた後、

スタート>すべてのプログラム>Apache HTTP Server 2.0.XX>Control Apache Server>Restart

を実行後、http://localhost/http://127.0.0.1/ にアクセスしてみたらどうですかね?
    • good
    • 0
この回答へのお礼

上書きしてやってみましたがlocalhost、127共にダメでした。

お礼日時:2006/09/18 22:02

No.6です



>また、コマンドプロンプトから
>netstat -o
>を実行してLocal Addressの所に「~:80」というように「:80」が付いている行がありますか?

以降は、No.5の書かれた「補足要求3」の方法の方が簡単なのでそちらでお願いします。
    • good
    • 0
この回答へのお礼

netstat -oを実行してみましたがポート80ではないようです。

回答してくださったみなさん、最初に勘違いして80と言ってしまい本当に申し訳ありませんでした。
本当に本当にお手数かけます。

お礼日時:2006/09/18 21:38

>error.logを見ると


>(OS 10022)無効な引数が提供されました・・・・・・

途中で切るのではなくて最後まで全部書いてください。


また、コマンドプロンプトから

netstat -o

を実行してLocal Addressの所に「~:80」というように「:80」が付いている行がありますか?
あった場合、一番右にあるPIDの番号を覚えておいてください。

その後タスクマネージャ(Ctrl + Alt + DELで出てきたウィンドウからタスクマネージャをクリック)のプロセスタブで該当するPIDのプロセスを探してください。
PIDの表示がない場合は、表示→列の選択 を選択後表示された「列の選択」で「PID(プロセスID)(P)」をチェックしOKすると表示されるようになります。

その時、該当するプロセスは何ですか?
    • good
    • 0

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