このページは、windowsにapache、PHP、データベースをインストールした手順の記録である。「XAMPPは使わん!!」という、ひねくれ者、へそ曲がり、天邪鬼な方にオススメである。
このwebサーバーの構築でやることは次の3つである。
- apacheのインストール
- PHPのインストールとapacheの設定
- データベースのインストールとPHPやapacheの設定
事前に決めておくこととやっておくこと
apacheをインストールするときに決めておくことは次の3つである。
- apache本体のインストールディレクトリ
- 外部に公開するファイルの配置ディレクトリ
- ログファイルの出力ディレクトリ
- ログファイルのファイル名
- エラーログファイルのファイル名
2.と3.はデフォルト値でも良いけれど、apache本体と公開するファイルを別ドライブにしておくなど、管理しやすいところにしておこう。ログファイルはファイル数が多く、また、ファイルサイズが大きくなることがあるので、別ドライブにしておくと良いかもしれない。
4.と5.はほとんどの場合デフォルトのままで良いが、このページではサンプルとして変えておく。
このページの説明では、それぞれのドライブとディレクトリ、ファイル名を次のように決めておく。
決める項目 | 値 |
---|---|
apache本体のインストールディレクトリ | e:/apacheTest24 |
外部に公開するファイルの配置ディレクトリ | e:/webTest/wwwdocs |
ログファイルの出力ディレクトリ | e:/webTest/logfiles |
アクセスログのファイル名 | accesslog.log |
エラーログのファイル名 | errorlog.log |
この時点で上記で決めたディレクトリを作っておく。
ダウンロード
apacheはApache Loungeからダウンロードできる。ダウンロードするファイルはダウンロードページにある。Windowsが64bitか32bitかでダウンロードするファイルが異なる。
Windowsの種類 | ダウンロードするファイル |
---|---|
64bit | httpd-2.4.51-win64-VS16.zip |
32bit | httpd-2.4.51-win32-VS16.zip |
2.4.51はバージョン番号で、ダウンロードする時期によって異なる。
インストール
ダウンロードしたファイルを伸長し、一部のディレクトリを「外部に公開するファイルの配置ディレクトリ」と「ログファイルの出力ディレクトリ」で指定した場所に移動する。
ファイルのコピー(または移動)
ダウンロードしたらzipファイルを伸長する。ディレクトリ「httpd-2.4.51-win64-VS16」が作られる。この中の「Apache24」のディレクトリが本体である。
伸長してできた「Apache24」のディレクトリの中身全部を「事前に決めておくこと」で決めておいた「apache本体のインストールディレクトリ」に移動またはコピーする。このページの例では、「e:/ApacheTest24」に移動する。
外部に公開するファイルの配置ディレクトリ
外部に公開するファイルの配置ディレクトリは、デフォルトでは「htdocs」になっている。配置ディレクトリを「htdocs」以外にしておきたいときは、「htdocs」ディレクトリの中身をそっくりそのディレクトリに移動する。このページの例では「e:/apacheTest24/htdocs」の中身を「e:/webTest/wwwdocs」に移動する。
ログファイルの出力ディレクトリ
ログファイルの出力ディレクトリは、デフォルトでは「logs」になっている。ログファイルの出力ディレクトリを「logs」以外に置きたいときは、「logs」ディレクトリの中身をそっくりそのディレクトリに移動する。このページの例では「e:/apacheTest24/logs」の中身を「e:/webTest/logs」に移動する。
設定ファイルの編集
httpd.confが編集する設定ファイルである。このファイルはapacheをインストールしたディレクトリ内のconfディレクトリにある。
ここでの編集は「事前に決めておくこと」の、「apache本体のインストールディレクトリ」、「外部に公開するファイルの配置ディレクトリ」、「ログファイルの出力ディレクトリ」、「ログファイルのファイル名」、「エラーログファイルのファイル名」の定義になる。また、サーバ名も指定しておく。
設定ファイルのバックアップ
httpd.confのバックアップを取っておく。
apache本体のインストールディレクトリ
この編集はapacheを「c:/Apache24」以外にインストールしたときのみ行う。
対象行は次の行である。
Define SRVROOT "c:/Apache24"
この行の「c:/Apache24」を、apacheをインストールしたドライブとディレクトリにする。このページでは「e:/ApacheTest24」にインストールするので下記のようになる。
Define SRVROOT "e:/ApacheTest24"
外部に公開するファイルの配置ディレクトリ
この編集は「外部に公開するファイルの配置ディレクトリ」をデフォルトのままにしておくときは必要ない。
対象行は次の連続した2行である。
DocumentRoot "${SRVROOT}/htdocs"
<Directory "${SRVROOT}/htdocs">
ここでは、外部に公開するファイルの配置ディレクトリを、DefineでDOCROOTとして定義しておく行を追加する。これは、DocumentRootとDirectoryが同じ内容になるため、これらの内容をDOCROOTと記述して指定できるようにするためである。
外部に公開するファイルの配置ディレクトリの指定は次の3行になる。
Define DOCROOT "e:/webTest/wwwdocs"
DocumentRoot "${DOCROOT}"
<Directory "${DOCROOT}">
ログファイルの出力ディレクトリ
この編集は「ログファイルの出力ディレクトリ」をデフォルトのままにしておくときは必要ない。
対象行はエラーログとアクセスログの2か所である。
エラーログの更新箇所
エラーログとして出力するディレクトリとファイル名が指定されている。
ErrorLog "logs/error.log"
アクセスログの更新箇所
アクセスログには出力するディレクトリとファイル名の他にオプション項目が指定されいてる。
CustomLog "logs/access.log" common
ここでは、ログファイルの出力ディレクトリを、DefineでDOCROOTとして定義しておく行を追加する。これは、ログファイルの定義が2か所あるため、これらの内容をDOCROOTと記述して指定できるようにするためである。
Defineの定義はErrorLogの前に入れる。これは、httpd.conf内ではエラーログが先に記述されいているからである。
エラーログの更新
エラーログの指定はDefineの定義を追加した次の2行になる。ファイル名は「エラーログのファイル名」になる。
Define LOGROOT "e:/webTest/logfiles"
ErrorLog "${LOGROOT}/errorlog.log"
通常ログの更新
通常ログの指定は次のようになる。ファイル名は「アクセスログのファイル名」になる。
CustomLog "${LOGROOT}/accesslog.log" common
サーバ名の指定
サーバ名を指定しておくことで余計なエラーを出さなくする。
対象行は次の行である。
#ServerName www.example.com:80
この行を有効化し、「www.example.com:80」を変更する。次のようになる。
ServerName localhost
ファイルの保存
ここまで編集したらファイルを保存する。
テスト実行
設定ファイルを編集したらapacheが立ち上がるかどうかテストしてみよう。
コマンドプロンプトの立ち上げ
テストはコマンドプロンプトから行う。コマンドプロンプトは管理者として立ち上げる。Windowsシステムツールにある「コマンドプロンプト」を右クリックし、その他の中の管理者として実行を選ぶ。
ドライブとディレクトリの移動
コマンドプロンプトが立ち上がったら、apacheをインストールしたドライブとディレクトリに移動し、ディレクトリ内のbinディレクトリに移動する。今回はeドライブのapacheTest24のディレクトリにインストールしたので次のように入力する。
e:
cd apacheTest24/bin
次のようになる。
apacheの立ち上げ
binディレクトリに移動したら、↓を入力してapacheを立ち上げる。
httpd.exe
apacheの立ち上げ後は次のように、コマンドの入力ができない状態になる。
起こりうる警告やエラー
apacheが立ち上がったときに何か表示されるかもしれない。これらの原因は次のとおりである。
「AH00558」で始まるとき
AH00558: httpd.exe: Could not reliably determine the server's fully qualified domain name, using fe80::b8b1:701f:f6e8:b7f9. Set the 'ServerName' directive globally to suppress this message
これは「サーバ名の指定」のところの指定が間違っているか、先頭に#が付いたままになっていることがある。このメッセージは実害はないが余計なものを出さなくするためにも直しておこう。
「AH00526」で始まるとき
AH00526: Syntax error on line 256 of E:/apacheTest24/conf/httpd.conf: DocumentRoot 'E:/webTest/wwwdocs' is not a directory, or is not readable
これは「外部に公開するファイルの配置ディレクトリ」のいずれかの行の指定が間違っている。
「AH02291」で始まるとき
(OS 2)指定されたファイルが見つかりません。 : AH02291: Cannot access directory 'E:/webTest/logfiles/' for main error log AH00014: Configuration check failed
これは「ログファイルの出力ディレクトリ」のいずれかの指定が間違っている。ディレクトリがないため、ログを出力できない。
エラーが出たとき
これらのエラーが出たら、httpd.confファイルを直してコマンドプロンプトからもう一度「httpd.exe」と入力する。
ブラウザで表示
ここまで来たら、webサーバとして動いているかどうかを確かめてみよう。ブラウザのアドレスバーに↓と入力する。
http://localhost/
ブラウザにIt works!と表示されればヨシ!
常時立ち上がるようにする
ここまでのテスト実行ではWindowsをシャットダウンするとapacheも終了してしまう。そのため、次回にWindowsを立ち上げた時にコマンドプロンプトからコマンドを打たなければならない。これは流石に面倒なのでapacheがWindowsのサービスとして立ち上がるようにしておく。
テストを一旦終わる
テスト実行の途中なら、コマンドプロンプトでCtrl-C(Ctrlキーを押しながら[C])と打ってコマンド入力できるようにする。コマンド入力に戻るまで数秒かかることがある。
サービス登録
コマンドプロンプトで↓のコマンドを入力する。
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.
“AH00558″で始まるメッセージが出てくるときは、テスト実行で出てきた「ServerNameがおかしい」と同じなので気にしなくていい。
これでWindowsが立ち上がったときにapacheも同時に立ち上がってくれる。Windowsをリブートしてブラウザでもう一度
と入力してみよう。テストの時と同じように表示されればヨシ!
「Apacheがとりあえず動くようになるまで」はここまで
これでWindowsでApacheが動くようになった。PHPなどのウェブサーバで動く「からくり」を動かすにはApacheの設定が必要になる。
レンタルサーバでウェブサイトを運営しているときのテストとして使っていこう。