Muni Bus

パソコンの操作方法や設定方法を忘れないようにメモしています。ブログを一回引っ越ししているので、所々表示がかなり乱れています・・・

【Apache】インストールする(Windows版)

2021年8月現在の最新版は2.4.48。

公式ページhttps://httpd.apache.orgを開いて、左側のメニュー「Essentials」の「Download!」(一番上にある)。

右側の「Apache HTTP Server 2.4.48~」の「Files for Microsoft Windows」をクリック。ぺーぎが切り替わる。「Downloading Apache for Windows」の「Apache Lounge」をクリックする。https://www.apachelounge.com/downloadに飛ぶ。

開かれたページのhttpd-2.4.48-win64-VS16.zipをダウンロードし、ディレクトリ付きで適当なフォルダーに展開する。

展開されたフォルダーApache24をC:\にそのまま移動させる。フォルダーと一緒に展開されたReadMe.txtはReadMe@.txtとしてC:\Apache24にコピーする。ファイル「-- Win64 VS16 --」は削除してよい。

管理者としてコマンドプロンプトを実行し、ウェブサーバソフトウェアを動作してみる。

>c:\Apache24\bin\httpd.exe
AH00558: httpd.exe: Could not reliably determine the server's fully qualified domain name, using ::1. Set the 'ServerName' directive globally to suppress this message
(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

80ポートが使われているため、起動できないと言われる。80ポートを何が使っているか調べる。

>netstat -a -o | find ":80"
  TCP         0.0.0.0:80             ○○:0             LISTENING       4
(表示省略)
  TCP         [::]:80                ○○:0             LISTENING       4

プロセスIDが4(最後の数字)が80ポートを使用していることがわかる。タスクマネージャのタブ「詳細」でPIDが4を探すと、名前が「System」となっておりWindows自体が使用しているはず。これが何かを調べる。

この通信のために、ファイアウォールに通信許可がなされているはずである。そこで、「コントロールパネル」→「Windows Defender ファイアウォール」、左側のメニュー「詳細設定」。別ウィンドウが表示される。

左側のメニュー「受信の規則」をクリック。ローカルポートが80のものでかつ有効になっているものを探す。「BranchCache コンテンツ取得 (HTTP-受信)」が有効になっているはず。

「コントロールパネル」→「管理ツール」→「サービス」。別ウィンドウが表示される。「BranchCache」を探す。恐らく状態が「実行中」になっているはず。これを、右クリックで表示されるメニューの「停止」をクリック。なお、スタートアップの種類が「無効」になっていないと手動で起動できてしまうため、ダブルクリックをして表示されたダイアログで「無効」に変更して「OK」ボタンを押すこと。 再度試す。

>netstat -a -o | find ":80"
(表示省略)

前期のIDが4の2行が表示されなければよい。80ポートが使われなくなったため、Apacheを起動する。

>c:\Apache24\bin\httpd.exe
AH00558: httpd.exe: Could not reliably determine the server's fully qualified domain name, using ::1. Set the 'ServerName' directive globally to suppress this message

サーバ名が指定されていないため起動できないと警告されている。C:\Apache24\conf\httpd.confをテキストエディターで開いて、「ServerName」を探す。おそらく以下のようにコメント化されているはずのため、以下のように127.0.0.1:80を指定する。

#ServerName www.example.com:80
↓
ServerName 127.0.0.1:80

Ctrl+Cでプログラムを強制終了し(数秒待たされる)、再度、起動する。

>c:\Apache24\bin\httpd.exe

この後に、何も表示されなければ起動されているはず。ウェブサイトを開く。

http://localhost

「It works!」と表示されれば成功。コマンドプロンプトで起動したこのプログラムはCtrl+Cで強制終了させる(数秒待たされる)。

Windowsのサービスとしてインストールする。

>c:\Apache24\bin\httpd.exe -k install

これで、Windows起動時に自動的に起動するようになる。