Apache の設定に関するまとめ

動作確認環境は以下の通りです

Apache の入手はhttp://www.apache.org/より無料で可能です。

Apache のインストール方法は自宅サーバを運用する(Windows2000 + Apache)で行っています。

コンテンツ

コンテンツはどこに置くのか?

Apache のデフォルトでは、html ファイルの静的なコンテンツ(「動的なコンテンツ」とはCGIなどのサーバサイドで実行するプログラムを指します )は、
C:\Program Files\Apache Group\Apache\htdocs
内に格納します。

これを変更したい場合は、
C:\Program Files\Apache Group\Apache\conf 内にある httpd.conf350行目
DocumentRoot "C:/Program Files/Apache Group/Apache/htdocs" の「C:/〜」部分( ローカルパス部分 )をスラッシュ区切り適宜変更します。

▲ページの最上部に戻る

Perl実行時の設定

CGIファイルはどこに置けばいいのか?

Apache のデフォルトでは、
C:\Program Files\Apache Group\Apache\cgi-bin
になっていますので、「cgi-bin」内に cgi ファイルを格納します。

例えば bbs.cgi というCGIを実行したいのなら、
C:\Program Files\Apache Group\Apache\cgi-bin 内に bbs.cgi を設置し、ブラウザのURL欄に、
http://localhost/cgi-bin/bbs.cgi で実行されるハズです。

動作しない場合、cgiファイルの1行目が #!C:/Perl/bin/perl になっているかを確認して下さい。
#!C:/Perl/bin/perl は ActivePerl の標準インストールパスです。
ActivePerlのインストール・設定方法はサーバサイドスクリプトを実行させる( CGI・Perl 編 ) で行っています。
フリーで配布されているcgiなどは #!/usr/bin/perl などになっている事があるので、必ず確認します。

CGI ファイル格納のローカルパスを変更する場合

C:\Program Files\Apache Group\Apache\conf 内にある httpd.conf614行目付近と620行目付近を適宜編集します。
 
614 行目付近 : ScriptAlias /cgi-bin/ "C:/Program Files/Apache Group/Apache/cgi-bin/"
変更 ScriptAlias /cgi-bin/ "任意のローカルパス/"
620 行目付近 : <Directory "C:/Program Files/Apache Group/Apache/cgi-bin">
変更 <Directory "任意のローカルパス">

上記2つの「任意のローカルパス」というのは同一でないとなりません!
またローカルパスは「\」ではなく「/」でないといけません!

614 行目付近の ScriptAlias /cgi-bin/ "C:/Program Files/Apache Group/Apache/cgi-bin/"
/cgi-bin/は、「 http://Host Name/cgi-bin/ファイル名 」になります。
例えば、/cgi-bin//mycgi/ とすると実際のアクセスは「 http://Host Name/mycgi/ファイル名 」になります。
また、ScriptAlias /cgi-bin/ "C:/Program Files/Apache Group/Apache/cgi-bin/"
のパスはディレクトリの区切りは「/」で、最後は必ず「/」で閉じなければなりません!

図A-01 614 行目付近と 620 行目付近を適宜変更します

変更の例
614 行目付近を ScriptAlias /mycgi/ "C:/web/mycgi/" に、
620 行目付近を <Directory "C:/web/mycgi"> にする場合、
C:/web/mycgi/ のフォルダ内に cgi ファイルを格納し、ヴラウザで「 http://HostName/mycgi/ファイル名 」でアクセスが可能になるワケです。

▲ページの最上部に戻る

ユーザを /~username で分ける

ここでは、プロバイダやフリーのwebスペースがくれるwebスペースの様に「http://localhost/~ユーザ名」でアクセスできる方法をご紹介します。

前提条件として、C:\Program Files\Apache Group\Apache\users\ユーザ名というディレクトリ構成でユーザ毎にwebスペースを割当てます。

C:\Program Files\Apache Group\Apache\conf 内にある httpd.conf をテキストエディタなどで開きます。
363行目付近を以下のスクリプトを追加します。

<IfModule mod_userdir.c>
UserDir "C:/Program Files/Apache Group/Apache/users/*/"
</IfModule>

図A-02 363行目付近に追加

これで、C:\Program Files\Apache Group\Apache\users フォルダ以下に任意のフォルダを作成し、
「http://localhost/~任意のフォルダ名」でアクセスが可能になったハズです。Apache を再起動して、動作確認をして下さい。

▲ページの最上部に戻る

/~username で分けたユーザにCGIの実行を可能にしてあげる

先述した通り、「http://localhost/~ユーザ名」でアクセスが可能になりました。ここでは、ユーザ毎にCGIの設置・実行が可能になる様に設定します。

前提条件として、C:\Program Files\Apache Group\Apache\users\ユーザ名\cgi-bin\*.cgiというディレクトリ構成でユーザ毎のCGI設置・実行を可能にします。

C:\Program Files\Apache Group\Apache\conf 内にある httpd.conf をテキストエディタなどで開きます。
838行目付近に #AddHandler cgi-script .cgi と記述があると思うので、これのコメント( # )をはずします。
下図( 図A-03 )は AddHandler cgi-script .cgi .pl となっています。これは .cgi と .pl をCGIとして実行する事を意味しています。

図A-03 838行目 #AddHandler cgi-script .cgi のコメントを削除

次に、同じく httpd.conf の 614行目付近、「ScriptAlias /cgi-bin/ "C:/Program Files/Apache Group/Apache/cgi-bin/"」の次行に以下の記述を追加します。
ScriptAlias /cgi-bin/ "C:/Program Files/Apache Group/Apache/users/*/cgi-bin/"

図A-04 614行目の次行に ScriptAlias /cgi-bin/ "C:/Program Files/Apache Group/Apache/users/*/cgi-bin/" を追加

そして最後に設置したcgi-binフォルダにCGIの実行権限を与えます。
624行目付近に以下の記述があると思います。

<Directory "C:/Program Files/Apache Group/Apache/cgi-bin">
AllowOverride None
Options +ExecCGI
Order allow,deny
Allow from all
</Directory>

上記の記述はルート( http://localhost/cgi-bin/*.cgi )でアクセスする場合の記述です。
その下に新しく以下の記述を追加します。

<Directory "C:/Program Files/Apache Group/Apache/users/*/cgi-bin">
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
</Directory>

これでユーザ毎のcgi-binフォルダ以下のCGIスクリプトの実行が可能になりました。

図A-05 624行目付近に追加で記述します。

これでユーザ毎にCGIの実行が可能になったハズです。Apache を再起動して、動作確認をして下さい。

▲ページの最上部に戻る
Technical Top

Copyright© Kensuke Imai. All Right Reserved.
webmaster@miloweb.net