Windows11搭載の新しいPCを購入し、MySQLをインストールしたので、次はApacheをインストール&解説することにします。
なお、本ページは手っ取り早くダウンロード&インストールするためのページではありません。
Apacheをインストールしながら根本的な解説や、(手っ取り早くしたい方にとっては余計な)丁寧な解説が含まれます。
ただインストールするだけではなく、Web関連をこれから仕事にしたいという方の参考になればと思い書いています。
今回の私の目的
今回は、以下を達成することを目的とします。
- Windows11に直にApacheをインストール
(Windows10でも同じと思いますが64bit版OSを想定) - インストール先→ C:\Apache2457(Program filesには入れない方が良い)
- Windowsのサービスに登録する
- ApacheMonitorをスタートアップに登録する
- 最低限の設定をする
それぞれの項目は、飛ばしても良いですし、別の場所にインストールするという場合でも参考になると思います。
ダウンロード
まずはApacheをダウンロードするところからスタートしましょう。
ダウンロード先
ApacheはオープンソースのWebサーバソフトウェアで、もともとUnix系のオペレーティングシステム(特にLinux)で動作することを主目的として設計されています。
そもそものOSが異なりますので、適切に動作させるための変更や調整が必要となります。……が、門外漢にとってそれは簡単なことではありません。
そこでWindows用のApacheバイナリやインストーラーを提供するために、コミュニティが主導して以下のようなプロジェクトが誕生しました。
Window用の単品Apacheは、上記プロジェクトのどちらかから落とすのが一般的です。
昔からの実績があるプロジェクトですし、Apache公式からリンクされている。
なので安心して利用することができると思われます。
私がフリーランスを始めたころにもあったと思うので、20年くらいの実績はあると思います。
ZIPファイルを落とす
今回はApache Loungeから落としてきました。特に問題が無ければ、以下の様に最新のファイルで良いでしょう。今回はApache2.4.57でした。
インストーラではなく、ただのZIPファイルですので、ダウンロードが済んだら解凍してください。
ファイルの配置
ダウンロードが済み、ファイルの解凍が出来ている状態からスタートです。
インストールの前に、まずはファイルを適切な位置に配置しましょう。
インスール先に配置
解凍したフォルダは、以下の様なファイル構成でした。必要であればReadMe.txtに目を通してください。
まずは上記のApache24を、インストール先のフォルダに移動してください。具体的には、カット(Ctrl+x)し、インストール先のフォルダ内に貼り付け(Ctrl+v)でOKです。
私はCドライブ直下に貼り付けたので、C:\Apache24になりました。
必要に応じフォルダ名変更
私は当初インストール先をC:\Apache2457としたかったので、移動したフォルダ名を、Apache24→Apache2457に変えました。
……が、一手間かかるので、後から考えるとApache24のままにしておいても良かったと思いました(汗)。
もしもApache24のままにした方は、ここでの行程は飛ばしてインストールに進んでください。
フォルダの名称を変えた方は、Apacheの設定ファイルを修正する必要があります。以下のファイルをテキストエディタ(メモ帳等)で開いてください。普通にエクスプローラからたどって開いてOKです。
C:\Apache2457\conf\httpd.conf
↑この部分は読みかえてね!
上記ファイル内の、サーバーのルートを定義するDefine SRVROOT
という設定箇所場所がc:/Apache24になっていますので、インストールしたパスに変更します。私の場合は37行目にありました。
# Define SRVROOT "c:/Apache24"
Define SRVROOT "c:/Apache2457"
#
はコメントアウトを意味します。元に戻したくなったときに戻せるようコメントアウトした下に、新たに設定を書いているというわけですね。
終えたら保存して閉じてください。
インストール
準備が整いましたので、さっそくインストールしていきましょう。とは言えインストールと言っても、インストーラがあるわけでもなく、フォルダ内のプログラムを使う形です。
インストール(というかサービス登録)
まずは管理者として(重要)、コマンドプロンプトか、PowerShellを立ち上げます。どちらでも良いですが、例えばPowerShellでは以下です。
- Windowsキーを押してスタートメニューを開く
- “powershell” と入力して検索
- 検索結果に表示される「Windows PowerShell」の上で、右クリック
- ドロップダウンメニューから「管理者として実行」を選択
そして、PowerShell内に以下のコマンドを貼り付けて実行します。カレントフォルダ(現在の場所)は気にせず、どこでも実行可能です。
C:\Apache2457\bin\httpd.exe -k install
しつこいですが、Apache2457の部分は置き換えてくださいね。
これでエラーが出なければ、インストール完了(サービス登録)です。Windowsを起動する度に、Apacheがバックグラウンドで起動しますので、いつでも利用できます。
エラーが出た場合
今回私はWindows11でエラーは出ませんでしたが、「dllが無い」旨のエラーが出ることがあるようです。これは、現在のパソコンにApacheを動かすライブラリが不足している場合に表示されます。
不足しているファイルは正確には「Microsoft Visual C++ 再頒布可能パッケージ」です。
自分でマイクロソフト公式から探しても良いのですが、ApaheLoungeにリンクがあるので、それを落とせばOKです。
当初落としたファイルの右上にvc_redist_x64
というリンクから落せます。
よくわからないサイトからのexeファイルを落とすのが怖い。
……とそう思った方、セキュリティ意識が高いですね!上記のダウンロードリンクのURLを見てみると以下です。
https://aka.ms/vs/17/release/VC_redist.x64.exe
このドメイン:aka.msはマイクロソフトが有しているのかはわかりませんが(whoisでも出てこなかったので不明)、執筆時(2023/10/12)マイクロソフト公式からもリンクを発しているので問題ないと考えられます。
これをインストール(ダブルクリックして開いてから適当にポチポチ押して促されるまま再起動)してから、もう一度Apacheのインストール(サービス登録)をお試しください。
いったん動作確認
さて、サービスには登録されたと思いますが、Windowsを再起動していなければまだApacheは起動していないと思います。
ですので動作確認や付随事項を行っていきましょう。
動作確認
C:\Apache2457\bin
に、ApacheMonitor.exe
というファイルがあるので、ダブルクリックで起動してください。このソフトウェアはバックグラウンドで起動するので、ダブルクリックしても表面上は何も起こりません。
起動するとこっそりタスクトレイ内に表示されていますので、そこのApacheMonitorを以下の1~4とクリックし、Apacheを起動してみましょう。
管理者のパスワードが求められたら入力してください。その後特に何もエラーが出なければ、Apacheが起動していると思われます(起動できなければエラーが出る)。
Apacheが起動しているか、ブラウザで以下にアクセスして確認してみてください。
http://localhost/
It works!と出れば、動作OKです。
ApacheMonitorをPC起動時に常駐させる
現在のままでも、PCを起動させるたびにApacheは起動しています。しかし設定ファイルの修正後や、PHPを使う等の際はApacheを再起動させる必要があります。
コマンドでも可能ですが、そういったApacheのコントロールをするのにApacheMonitorはとても便利です。
なのでPC起動時に、ApacheMonitorも起動させておきましょう。
C:\Apache2457\bin
内の、ApacheMonitor.exe
というファイル上で右クリック→「その他のオプションを確認」→「ショートカットの作成」でApacheMonitorのショートカットを作ります。
それを仮にデスクトップなどにも移動しておいてください。
次に、「Windowsキー」+Rで、「ファイル名を指定して実行」画面を出し、以下のコマンドを貼り付け実行します。
shell:startup
すると個人のスタートアップフォルダが開きます。スタートアップフォルダに先ほど作ったショートカットを入れておけば、PC起動時に実行してくれます。
これでインストール自体はOKです。お疲れ様でした!
設定の変更と反映方法
これから基本的な設定を変更していきます。……の前に、設定の変更と反映の方法を事前にご紹介しておきます。
設定ファイルの場所
Apacheの基本的な設定を変更するには、以下の設定ファイルを修正します。テキストエディタなどで開き、修正&保存することで設定を変更できます。
C:\Apache2457\conf\httpd.conf
設定ファイルの修正を誤ると、Apacheが起動しなくなります。
そのため編集前のデータは、複製してバックアップをとっておくと良いでしょう。
設定ファイルの変更について
拡張子.conf
のファイルになじみがない方がほとんどだと思います。
最低限知っておくと良いと思うのは、以下です。
#
がコメントアウトを意味する- 必要に応じて元の表記を残しておく
例えば、以下のコード例では、1~2行目をコメントアウト(無効)にし、新たに3~4行目で定義し直しています。
#DocumentRoot "${SRVROOT}/htdocs"
#<Directory "${SRVROOT}/htdocs">
DocumentRoot "D:/www"
<Directory "D:/www">
わざわざ1~2行目を残さなくても良いですが、こうしておけば後から見て「ああ、ここは自分で設定を変えたんだな」ということがわかります。
もちろん、1~2行目は消してもかまいません。ご自分に都合の良いように編集してください。
設定の反映を確認する
設定ファイル: httpd.conf
は、修正・保存するだけでは即座に反映されません。
Apacheを再起動させた時に修正が適用されます。httpd.conf
を修正した後は、ApacheMonitorからApacheを再起動させることを忘れないようにしてください。
もちろん、まだスタートしていなければ、StartでもOKです。
もしhttpd.conf
に文法エラーなどがあると、この時点でエラーが発生してApacheが起動しません。その場合は、テキストエディタで「戻る」を連打して修正前に戻して再確認するか、最悪バックアップから復元すればOKです。
最低限の設定をする
ここからは誰もが行う必要はありません。あなたの環境・必要に応じて設定を変更してください。
先ほども書いた通り、1度にまとめて修正せず、1つ終わったらその都度動作確認してくださいね。
公開ディレクトリの変更
現状では、C:\Apache2457\htdocs
が公開ディレクトリとなっていると思われます(少なくとも私のバージョンではそうです)。
この場合、以下の様な対応になります。
C:\Apache2457\htdocs\index.html
→http://localhost/index.html
それでも良いのでしたらそのままでもOKです。私はイヤなので、公開ディレクトリをD:/www
に変えたいと思います。
その場合設定ファイルの、以下の場所を修正します。私の環境では251行目からでした。
DocumentRoot "${SRVROOT}/htdocs"
<Directory "${SRVROOT}/htdocs">
私は最初の2行をいつでも元に戻せるようにコピーし、#でコメントアウトしてから、直後に貼り付けて編集しています。
#DocumentRoot "${SRVROOT}/htdocs"
#<Directory "${SRVROOT}/htdocs">
DocumentRoot "D:/www"
<Directory "D:/www">
さっき説明した内容ですね
公開ディレクトリの.htaccessの有効化
現在は.htaccessが使えないので、有効にしておきます。設定箇所は、先ほどの近く。ちょっとだけ下です。
#DocumentRoot "${SRVROOT}/htdocs"
#<Directory "${SRVROOT}/htdocs">
DocumentRoot "D:/www"
<Directory "D:/www">
#~中略~
#AllowOverride None
#~中略~
</Directory>
#AllowOverride None部分を以下の様に変更します。
#DocumentRoot "${SRVROOT}/htdocs"
#<Directory "${SRVROOT}/htdocs">
DocumentRoot "D:/www"
<Directory "D:/www">
#~中略~
#AllowOverride None
AllowOverride All
#~中略~
</Directory>
こちらも元々の表記を残していますが、直接編集してもかまいません。
ディレクトリインデックスの修正
http://localhost/
等と、ファイル名を省略された際に呼び出されるファイルは、デフォルトでは、index.html
となっていると思います。
これではPHPの開発に不便なので私は変更します。
以下の箇所を変更します。私の環境では288行目にありました。
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
先ほどの通り、index.html
のみが登録されていますので、これに追記します。
私は、以下を追加したいと思います。
- index.htm
- index.php
この場合、以下の様に修正します。半角スペースで区切って記載するだけです。
<IfModule dir_module>
DirectoryIndex index.htm index.php index.html
</IfModule>
必要なモジュールのロード
Apacheの一部の機能はモジュールとして分割されており、各自必要なものをロードして使う仕組みです。
インストール時は最低限のロードになっているので、必要なものをロードしておきましょう。
これはもちろん人によりますが、以下はWeb開発にマストに近いものと感じています。
- mod_rewrite(URLの書き換え)
- mod_access_compat(Apache2.2系までの記述を許容)
例えば前者はWordPressなどを動かす際にも使われていますね。
後者も、まだまだ古い書き方のサイトは多くあるからです(Deny from all等の制限)。
設定ファイルから、以下の箇所をそれぞれ探し出します。私の環境では、mod_access_compatは74行目mod_rewirteは162行目にありました。
#LoadModule access_compat_module modules/mod_access_compat.so
~中略~
#LoadModule rewrite_module modules/mod_rewrite.so
該当行を、以下の様に先頭の#
を削除して保存します。
LoadModule access_compat_module modules/mod_access_compat.so
~中略~
LoadModule rewrite_module modules/mod_rewrite.so
#
を付けるとコメントアウト(=ロードされない)。外すと有効(=ロードされる)を意味します。
まとめ
これでApacheを使い、静的なコンテンツを動作させることができるようになりました。
また、localhost以外のURLでアクセスしたい場合は、バーチャルホストの設定も必要ですので、ご希望の方はApache2.4にバーチャルホストを追加するのページもご覧ください。
WordPressなどの動的コンテンツを動作させるには、MySQLのインストールや、PHPのインストールも必要です。
それらのページも今後作っていきます。
コメント