ローカル環境に HTTP Server を作る Apache導入

新しい環境にHttpサーバを作ることになったのでその手順のメモ。

とりあえず動作すれば良いだけなのでセキュリティ設定などは特に気にしない。後ほどPHPも導入予定。

環境

Windows10 pro 64bit
Apache HTTP Server 2.4.48

構築条件

サーバのルートパス(ServerRoot)は「c:\server/Apache24」とする
ホームページのルートディレクトリは「 c:\server\storage\public_html」とする
一部の項目で管理者権限が必要になるため、その権限を持っている事

※サーバのルートパスや ホームページのルートディレクトリは必要に応じて置き換えること。

Apacheをダウンロードする

Apache公式サイトからダウンロードする。→ https://httpd.apache.org

「Download!」をクリック。

apache-intro-download-00

「Files for Microsoft Windows」をクリック。

apache-intro-download-01

「Apache Lounge」をクリック。

apache-intro-download-02

「httpd-2.4.48-win64-VS16.zip」をダウンロードする。

apache-intro-download-03

ダウンロードした .zip ファイル中の「 Apache24 」フォルダを「C:\server\Apache24」となるように解凍する。

apache-intro-download-04
解凍後のエクスプローラ

Apache24\conf\httpd.conf を編集する

テキストエディタで開いて編集する。

基本的な設定

サーバのルートフォルダ指定(SRVROOT)とサーバー名( ServerName )の指定を次のように修正する。

Define SRVROOT "c:/server/Apache24"
ServerName localhost:80

ドキュメントルートの設定

ドキュメントルート(DocumentRoot )の設定と <Directory> </Directory> タグの設定を修正する。

[修正前]
DocumentRoot "${SRVROOT}/htdocs"
<Directory "${SRVROOT}/htdocs">

	~

    Options Indexes FollowSymLinks

	~

</Directory>
[修正後]
DocumentRoot "C:\server\storage\public_html"
<Directory "C:\server\storage\public_html">

	~

	Options FollowSymLinks

	~

</Directory>

「Options Indexes FollowSymLinks」→「Options FollowSymLinks」とするのはアクセスされたファイルがなかった場合に、フォルダの中のファイルリストを見えないようにする設定となる。

Index.html を用意する

「 c:\server\storage\public_html」ディレクトリを作成してその中に適当な「index.html」ファイルを作っておく。
次のような簡単な簡単な内容でよい。

<html><body><h1>Hello World!</h1></body></html>

Apacheサービスのインストール

コマンドプロンプトから行う。

C:\server\Apache24\bin\httpd -k install

下記のように拒否される場合は、管理者権限をもったコマンドプロンプトから行う。

C:\server>C:\server\Apache24\bin\httpd -k install
Installing the 'Apache2.4' service
(OS 5)アクセスが拒否されました。 : AH00369: Failed to open the Windows service manager, perhaps you forgot to log in as Administrator?

管理者権限をもったコマンドプロンプトの起動方法は下記を参照。

管理者権限を持ったコマンドプロンプトの起動方法

インストールが成功すると成功した旨と、 httpd.conf の内容のチェック結果が表示される。
問題がある場合は「 Errors reported here must be corrected before the service can be started. 」行の後にレポートが表示される。

C:\server>C:\server\Apache24\bin\httpd -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.

サービスがインストールされているか確認するにはタスクマネージャー(Ctrl + Shift + ESC)の「サービス」タブなどから確認できる。

apache-service-task-manager

Apacheサービスの起動

インストールした Apache サービス を起動する。いくつか方法がある。

①タスクマネージャの 「サービス」タブから対象サービスの右クリックメニューから起動する

対象サービスの右クリックメニューから「開始」を選ぶ。

②コマンドプロンプトから起動する。

C:\server\Apache24\bin\httpd -D LOCAL -k start

③付属のツール「 Apache Service Monitor 」から起動する。

実行ファイルは Apache24\bin\ApacheMonitor.exe。
インストールされているサービスやその状態などが視覚的にわかりやすい。
サービスを選んで「start」ボタンをクリックする。

apache-service-monitor

動作確認

ブラウザから「http://localhost」にアクセスし「Hello World!」とかかれたページが表示されれば成功となる。
「c:\server\storage\public_html\index.html」の内容が表示されていることが分かる。

「http://自分のPCのIPアドレス」
「http://自分のPCの名前」
でもアクセスできる。

同じローカルネットワーク上の他のPCからもアクセスできるようにしたい、またはさせたくない場合はファイアーウォールの設定から許可、ブロックの設定を行う。
設定画面はウィンドウズメニューの Windows管理ツール ー セキュリティが強化された Windows Defender ファイアウォール から開ける。

windows-management-tools-fire-wall-menu

「受信の規則」に Apache HTTP Server が2つ(TCP,UDP) が追加されているので、右クリック ー プロパティから「操作」の項目で接続の許可、ブロックを選択する。

windows-management-tools-fire-wall-apache
許可した場合
windows-management-tools-fire-wall-apache-block
ブロックした場合

※無いとは思いますが、パブリックネットワークへの接続時や、ルータの設定などで予想していない箇所からアクセスできてしまうようになる可能性もなくはないので注意が必要。

Apacheサービスの停止

起動と同様にいくつか方法がある。
メンテナンスや使っていない時は停止させておきたい場合があるので。あるよね?

①タスクマネージャの 「サービス」タブから対象サービスの右クリックメニューから 停止する

対象サービスの右クリックメニューから「停止」を選ぶ。

②コマンドプロンプトから停止する。

C:\server\Apache24\bin\httpd -k shutdown

③付属のツール「 Apache Service Monitor 」から停止する。

サービスを選んで「stop」ボタンをクリックする。

Apacheサービスのアンインストール

コマンドプロンプトから行う。 アンインストールする際はサービスを停止させておいた方がよい。

C:\server\Apache24\bin\httpd -k uninstall

C:\server>C:\server\Apache24\bin\httpd -k uninstall
Removing the 'Apache2.4' service
The 'Apache2.4' service has been removed successfully.

Apacheサービスの起動設定

Windowsのサービス管理ツールから行う。
Windowsメニューの、Windows管理ツール ー サービス から サービス 管理ツールを起動。

windows-management-tools-service

サービスのプロパティでスタートアップの種類を選ぶ。Windows起動時に自動起動したいなら「自動」。

windows-management-tools-apache
windows-management-tools-apache-prop