WindowsにApacheをインストールする

以下の説明にあるイメージなどは、主にApache1.3.4を元にしています。99/04/07現在の最新版は1.3.6ですが、インストールの手順は変わっていないようです。

1.http://www.apache.org/dist/ などから、ディストリビューションファイルapache_1_3_x_win32.exeを入手します。

2.ディストリビューションファイルapache_1_3_x_win32.exeをダブルクリック等で起動します。

3.「はい」をクリックします。これで、インストールシールドウィザードが起動します。

4.ライセンスへの同意が求められます。同意する場合、「YES」をクリックします。

5.インフォーメーションが表示されるので、読了後「YES」をクリックします。

6.インストールするディレクトリの確認画面となるので、インストールするディレクトリをセットします。

7.別のディレクトリにしたい場合、「Browse...」をクリックします。

8.選択しないで直接パスを入力した時に、そのディレクトリがなければ「指定したディレクトリがないが、新規に作成するか」というメッセージが表示されます。

9.パスが間違っていなければ、「はい(Y)」をクリックします。

10.これで、インストールディレクトリが変更されました。デフォルトでよい場合、これらの手順はスキップし、「Next」をクリックします。

 

11.セットアップタイプをTypical、Compact、Customの中から選択します。通常は、Typicalでよいでしょう。Typicalでよい場合、「Next」をクリックします。

12.一方、Customを指定するとインストール可能なコンポーネントが表示されるので、必要なものを選択します。通常ソースコードを利用する機会はないので、除外してもよいでしょう。選択後、「Next」をクリックします。

13.スタートメニュー等で表示されるフォルダ名を聞いてきます。特に不都合がなければデフォルトでよいと思います。

14.「Next」をクリックするとセットアップが開始されます。

15.セットアップが終わると、次のようなフォルダが表示されます。

16.そして、セットアップ完了すると、次のメッセージが表示されます。メッセージにしたがい、PCを再起動します。

17.再起動後、スタートメニューや先程のフォルダから「Start Apache as console app」を選択して、起動します。NTの場合、「Install Apache as Service (NT only)」を選択すると、サービスとして登録、起動することができます。

18.「Start Apache as console app」を選択し他場合、Apacheが起動し次のような画面が表示されます。

19.ブラウザで自PC名、あるいはIPアドレスを入力する(http://myhostname/、http://localhost/、http://127.0.0.1/等)と次のように表示されるはずです。

 

20.使用方法等は、同じくスタートメニューやフォルダーから「Apache Documentation」を選択すると、英文マニュアルがブラウザ表示されます。

 

WindowsのApacheの設定をする

C:\program files\Apache Group\Apacheにインストールしたとして、今後このディレクトリをServerRootと呼びます。
Apache1.3.4では、各種設定ファイルを格納しておくconfディレクトリ(デフォルト)は空の状態なので、そのままでは動きません。Apache1.3.6では、また、httpd.confファイルが自動生成されるようになったので、以下の初期手順は不要です。

Apache1.3.4の場合、ServerRoot直下の.tmpディレクトリにある次のファイルを、同じくServerRoot直下のconfディレクトリにコピーします。

apache_pb.gif
httpd.conf-dist-win
index.html
magic
mime.types

ファイル名から-dist-winの部分を取り除きます。

httpd.conf

次にhttpd.confを編集し、設定を行います。
### Section 1: Global Environment
ServerRootのディレクトリを変更します。

ServerRoot "@@ServerRoot@@"

ServerRoot "C:/program files/Apache Group/Apache"

### Section 2: 'Main' server configuration
Apacheサーバ管理者を変更しておきます。

ServerAdmin you@your.address

ServerAdmin webmaster@hoge.co.jp

DocumentRootを変更します。
DocumentRoot "@@ServerRoot@@/htdocs"

DocumentRoot "C:/program files/Apache Group/Apache/htdocs"

ここからは、Apache1.3.6にも関係してきます。

ディレクトリへのアクセス権限の設定について:

Windowsでは影響ありませんが、デフォルトの設定では、次のように、オプションとしてシンボリックリンクは許可されています。また、アクセス権限の設定の優先順位について、ディレクトリにある.htaccessファイルの設定は、デフォルトでは無効になるようになっています。有効にしたい場合、Noneの代わりに有効にする指示子(Authconfig、AuthUserFIle、FileInfo、Indexes、Limit、Options、All)を指定します。

<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>

個別の設定を行いたい場合は、各ディレクトリを指定して行います。例えば、DocumentRootに設定した仮想ルートディレクトリの設定を変えたい場合、次の行を変更します。

<Directory "@@ServerRoot@@/htdocs"> # Apache1.3.4

<Directory "C:/program files/Apache Group/Apache/htdocs"> # Apache1.3.6

デフォルトでは以下の設定が有効になっています。

Optionsとして、Indexesが追加されています。Indexesは、指定したURLにデフォルトのHTMLファイル(index.htmlなど)がない場合、インデックス用コマンドを使って生成したリストの返送の許可を行うものです。そのディレクトリ以下でSSIを有効にするには、OptionsにIncludesを追加します。同様に、そのディレクトリ以下でCGIの実行を有効にするには、ExecCGIを追加します。

Options Indexes FollowSymLinks

Options Indexes FollowSymLinks ExecCGI Includes

.htaccessファイルで細かく制御する場合は、デフォルトでは.htaccess内の記述が無効になっていますので、認可するものをセットして有効にします。

AllowOverride None

AllowOverride Options

deny指示子とallow指示子の優先順位は、allow,denyの順としています。特に指定していなければ、デフォルトでdeny,allowの順となります。

Order allow,deny

このディレクトリには全てのクライアント/ユーザのアクセスを認めています。

Allow from all

個人用CGI環境を作る場合、AllowOverride以外は変更の必要性はないでしょう。この段階でApacheサーバは動作します。上記のように、MS-DOSプロンプトでインストールディレクトリに移動してApacheとエントリするか、スタート→プログラム→Apache Web Server→Apache Serverを選択するとApacheが起動します。

Apache1.3.4でマニュアルで設定した場合、httpd.confファイルに間違いがある可能性があるので、最初は前者の方法を取った方がよいでしょう。エラーが生じた場合エラーメッセージが表示されるのですが、後者だとMS-DOSプロンプトがすぐに消えてしまうので内容がわかりません。

例えば、ServerRootが正しく設定されていないと次のようなメッセージが表示されます。

C:\program files\Apache Group\Apache>apache
Syntax error on line 63 of c:\PROGRA~1\APACHE/conf/httpd.conf:
ServerRoot must be a valid directory


Apacheが起動すると、上記のようにMS-DOSプロンプトが開き次のメッセージが表示されます。

Apache/1.3.4 (Win32) running...

ここまでの設定以外で主な設定としては、ログにアクセスしてきたクライアントのホスト名を記録したい場合、HostnameLookupsをonにセットします。

HostnameLookups off

HostnameLookups on

デフォルトではIndexOptionsにFancyIndexingがセットされ、見栄えのよいインデックスを作るために/icons/仮想ディレクトリのイメージファイルが使用されます。Apache1.3.4では、この/icons/仮想ディレクトリと実ディレクトリを関連付けるため、ディレクトリ名を変更します。Apache1.3.6では、最初からセットされています。

Alias /icons/ "@@ServerRoot@@/icons/"

Alias /icons/ "C:/program files/Apache Group/Apache/icons/"

Apache1.3.6では最初からセットされていますが、1.3.4では、CGIスクリプトを仮想ディレクトリ(例えば/cgi-bin)で集中的に格納する場合、同様に実ディレクトリとその仮想ディレクトリを関連付けます。

ScriptAlias /cgi-bin/ "@@ServerRoot@@/cgi-bin/"

ScriptAlias /cgi-bin/ "C:/program files/Apache Group/Apache/cgi-bin/"

この場合、セキュリティの関係から通常.htaccessによるオーバライドやオプションは認めないようにします。(個人用CGI環境を作る場合は、この設定は不要かもしれません。)Apache1.3.6では最初からセットされています。

<Directory "@@ServerRoot@@/cgi-bin">
AllowOverride None
Options None
</Directory>

<Directory "C:/program files/Apache Group/Apache/cgi-bin">
AllowOverride None
Options None
</Directory>


/cgi-binディレクトリではなく、各ディレクトリで.cgi拡張子を持つファイルを使ってCGIを行うように設定したい場合、次の行のコメント記号を外します。

#AddHandler cgi-script .cgi

AddHandler cgi-script .cgi

SSIを有効にし、.sthmlファイルをSSIの対象ファイルとする場合、次の行のコメント記号を外します。

#AddType text/html .shtml
#AddHandler server-parsed .shtml

AddType text/html .shtml
AddHandler server-parsed .shtml


基本的には、これでCGIは動作するはずです。動作確認は、次のようなファイルを作成し、URLで指定して、環境変数が表示されればOKです。

allenv.cgi
#!e:/perl/bin/perl
print <<__HERE__;
Content-type: text/html

<HTML>
<BODY>
<PRE>
__HERE__

foreach $key (keys %ENV){
print $key ," = ", $ENV{$key},"\n";
}

print "</PRE>";
print "</HTML>";
print "</BODY>";

Apacheは#!行を認識しますので、MS-IIS/PWSのように拡張子と実行ファイル名を別途関連付ける必要はありません。上記ではe:/perl/bin/perlとしていますが、自分の環境におけるperl.exeへのパスを指定してください。#!とパスの間は空けてはなりません。また、ApacheのインストールドライブとPerlのインストールドライブが異なっている場合、上記のように頭にドライブ名を付けておきます。
ちなみに、Win98+Apache1.3.4の環境では以下のように表示されました。






ご意見は、 電子メールまたは 連絡用ページでお願い致します。
Perl初心者の部屋へ戻る。