【Apache-2.4】配布はソースのみ!なぜならば・・・

いつのまにかApacheはソースの配布になっていた。
Binaryのページには、
バイナリーのダウンロード負荷が物凄いので諦めたと書いてあり、

Download from your nearest mirror site!

とダメ出しをしていた。
しかし一般にミラーサイトは、『そのままミラーするのが通』なので
勿論、同じ文面が載っている。
このリンクをたどってもWindowsのバイナリー(EXEとかMSI)の入手は不可能だ。
だが、最初のページの下の方には

Downloading Apache for Windows

があり、
Apacheのバイナリーモジュール(EXEファイル等)の配置しているサイトのリストが掲載されていた。

  • ApacheHaus
  • Apache Lounge
  • BitNami WAMP Stack
  • WampServer
  • XAMPP

自分でコンパイルできないなら、この中から選んでDLしてね!と書いてある。
※だが、最後まで読めば「試しに自分でコンパイルすること」自体が罠なんじゃないかな?と、貴方は気が付くことになるだろう。
今回は、Apache Loungeを選択し、Apache 2.4.18 Win64 こと httpd-2.4.18-win64-VC14.zip をGETした。
同ページで、Apache 2.4.18 Win32 もGETできるハズだ。
残念ながらパッケージのインストーラではなく、
インストール後のフォルダ構成をアーカイブしたものであった。
なので、設定の見直しや、必要に応じて、vc_redist_x64/86.exeなどのランタイムも入れなければいけないだろう。
テスト・アンド・エラーを繰り返すしかない様だ。
そもそも、EXEをダブルクリックするだけでApacheサービスを起動するような作りにはなっていないのだから仕方が無いのだ。
諦めずコツコツと少しづつ調整が必要だ。
まずは、直下のReadMe.txtを読み必要な設定を行わなければならない。
Install
——-
ドコかにunzipして中のApache24フォルダをc:/Apache24フォルダにコピーし、DOSプロンプトから httpd.exeを実行せよ!
勿論、

‘httpd.exe’ は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

となるので、

> cd C:\Apache24\bin の後に
> httpd.exe
(OS 10013)アクセス許可で禁じられた方法でソケットにアクセスしようとしました。 : AH00072: make_sock: could not bind to address [::]:80
(OS 10013)アクセス許可で禁じられた方法でソケットにアクセスしようとしました。 : AH00072: make_sock: could not bind to address 0.0.0.0:80
 AH00451: no listening sockets available, shutting down
 AH00015: Unable to open logs
> httpd.exe -k install
Installing the 'Apache2.4' service
(OS 5)アクセスが拒否されました。 : AH00369: Failed to open the Windows service manager, perhaps you forgot to log in as Adminstrator?

となってしまった。
cdでディレクトリィを移動したもののサービスに登録するなら・・・
コントロールパネルからシステム環境変数にC:\Apache24\binを登録する必要があるだろう。
久しぶりに設定してみたら、Windows-10ではこんな画面に変わっていた。
20151218-1
これなら「:」の付け忘れや「;」ミスの心配もないし、上、下ボタンで入れ替えも簡単だ。
そして、サービスを登録するにはやはり「管理者:コマンド プロンプト」が必要だろう。

召喚方法1:

Windowsキーを押す

「すべてのアプリ」をクリック

WのWindows システムツールをクリック。※Wまでスクロールするのがとてもダルい。

展開したメニューの「コマンド プロンプト」を右クリック。

ポップアップしたメニューの上をマウスで「その他」まで移動。

「管理者として実行」をクリックする。

召喚方法2:

Windowsバーに登録しておいた「コマンド プロンプト」のアイコンを右クリック。

ポップアップしたメニューを「コマンド プロンプト」の場所までマウスポインタを移動し右クリック。

さらにポップアップしたメニューの「管理者として実行(A)」をクリックして

「管理者:コマンド プロンプト」を呼び出す。

しかし、それでも、

(OS 10013)アクセス許可で禁じられた方法でソケットにアクセスしようとしました。 : AH00072: make_sock: could not bind to address [::]:80
(OS 10013)アクセス許可で禁じられた方法でソケットにアクセスしようとしました。 : AH00072: make_sock: could not bind to address 0.0.0.0:80
 AH00451: no listening sockets available, shutting down
 AH00015: Unable to open logs
C:\Apache24\bin>httpd.exe -k install
 Installing the 'Apache2.4' service
 The 'Apache2.4' service is successfully installed.
 Testing httpd.conf....
 Errors reported here must be corrected before the service can be started.
(OS 10013)アクセス許可で禁じられた方法でソケットにアクセスしようとしました。 : AH00072: make_sock: could not bind to address [::]:80
(OS 10013)アクセス許可で禁じられた方法でソケットにアクセスしようとしました。 : AH00072: make_sock: could not bind to address 0.0.0.0:80
 AH00451: no listening sockets available, shutting down
 AH00015: Unable to open logs

と少しマシになったダケだった。
-K オプションでサービスは登録できたようだが、
20151217-1
設定した中身がhttpd.exe -k runservice とは・・・恐れ入る。
20151218-4
それに0.0.0.0:80でエラるのだから、80ポートに先約がいるようだ。
20151217-2
VisualStudio Community 2015 が入っているせいらしいので、諦めてアンスコ。
だが、IISはアンスコされず、直にアンスコ。
20151217-3
さて、再起動したもののサービスを起動するとエラー1
Windowsのイベントログを読んでいくと
The Apache service named  reported the following error:
>>> (OS 10013)アクセス許可で禁じられた方法でソケットにアクセスしようとしました。  : AH00072: make_sock: could not bind to address 0.0.0.0:80
The Apache service named  reported the following error:
>>> AH00451: no listening sockets available, shutting down
The Apache service named  reported the following error:
>>> AH00015: Unable to open logs
The Apache service named  reported the following error:
>>> (OS 10013)アクセス許可で禁じられた方法でソケットにアクセスしようとしました。  : AH00072: make_sock: could not bind to address 0.0.0.0:80
The Apache service named  reported the following error:
>>> (OS 10013)アクセス許可で禁じられた方法でソケットにアクセスしようとしました。  : AH00072: make_sock: could not bind to address [::]:80
色々調べたけど、どこかで80ポートを占有しているらしいのだが何が占有しているのかが判らない。
Visual Studio 2015 のランタイム(VC_redist.x64.exe)を放り込んだ後に
— httpd.conf を修正。
Listen 8080
Apache Service サービスを起動。
エラーメッセージは出てこない。
ブラウザからhttp://127.0.0.1:8080/を見る

It works!

80ポートが使えないことを除けばApacheは調子が良さそうだ。
※TLSは何か調整しないとダメっぽいけど・・・
ApacheMonitorをコピーし、
C:\Users\ユーザー名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup を開き
ここにショートカットを貼り付ける。
これで任務完了。
ps.
と思った。
しかし執念深くググってみると、
skypeが怪しいという記事を見つけたが・・・
http://nusoft.jp/blog/archives/110 によると

  • Web Deployment Agent Service
  • SQL Server Reporting Service
  • Windows Remote Management
  • BranchCache

あたりがWindows7のポート80を奪っていたらしい。

どれも心あたりあり過ぎて困るw

skypeなど共々アンスコしてもコマンドプロンプトでnetstat -naoすると
アクティブな接続
プロトコル  ローカル アドレス      外部アドレス           状態            PID
TCP         0.0.0.0:80             0.0.0.0:0              LISTENING       4
消えてない!
http://worktoolsmith.com/2013/01/windows-port80-pid4/ に Microsoft Web Deploy が怪しいと書いてあった。
Microsoft Web Deploy 3.6 があった。インストの日付を見るとVS2015 Community の一部らしいのでアンスコ。
しかしダメだった。
敵を知るにはまず・・・
真正面から向かい合った方がいいだろう。
http://127.0.0.1 を開く。
真っ白な画面。
ソースの窓も真っ白。
そう!サイズが0バイト。
前世期に・・・
デスクトップのスクリーンショットを盗み撮りし80ポートを乗っ取ってブラウザを起動して暴露し、使っている人をびっくりさせる
そんな変なのがあったのを思い出した。
しかし、画面も真っ白だ。
自白を得られる様な気配は全くない。
http://127.0.0.1?aaaaaaaaaaaaaaaaaaaa
と揺さぶりをかけても真っ白。シラを切ったままだ。どうやら口が堅い奴らしい。
このまま黙秘権を行使されても進展が無いので、
仕方なく裏口に回ってみる。
カギはかかっていないが立て付けが悪くなっている。
Windowsマークを右クリックし、Windows-10では禁断のコントロールパネルを開き、アプリケーションの【Windowsの機能の有効化または無効化】を見てみた。
「インターネット インフォメーション サービス」
⇒「World Wide Web サービス」
⇒「セキュリティ」
の中に見るから怪しい【要求のフィルタリング】を発見!
20151218-3
ツールチップには「ルールを構成し、指定のクライアント要求をブロックします」と書いてある。
80ポートを塞いでいる実行犯の0バイトと雰囲気がよく似ている。
試にこのチェックを外すと
再起動を促される。
いくつかのメッセージが表示され
パーセントの数字が少しづつ増えていく
再ログイン。
そして、http://127.0.0.1 を見ると

It works!

Apacheが偉そうにガッツポーズを決めていた。




コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA