« WindowsにApache2,PHP,Perl,MySQLを一括インストール | ホーム | 文字コード"EUC-JP"と"UTF-8"の違い »
2006年11月27日
SpaceTag: CGIを任意のディレクトリで実行するには
((10/17アップ。))
スペースタグ(SpaceTag)の話題。CGIをcgi-bin以外の任意のディレクトリで実行できるようにするには、少し作業が必要です。ここにもう一度、スペースタグのインストール方法をまとめます。
SpaceTag = Apache2 + PHP + Perl + MySQL
[バージョン]
ST Server for Windows Version 1.1
[目的]
1. SpaceTagをインストールし、
2. ドキュメントルートディレクトリをD:¥wwwに変更し、
3. Perlの設定を変更して、cgi-binディレクトリ以外の場所(2.のディレクトリ)でcgiを実行できるようにする。
[方法]
まず、SpaceTagをインストールします。デフォルトでは、Perlがインストールされませんので、チェックボックスにチェックを入れるのを忘れずに。
再起動後、ST Server Monitorの[サーバ環境設定]-[Apache2]でDocumentRootを変更します(ex. D:¥www)。そして、ST Server MonitorでApache2を[Restart]します。
ここまでで、D:¥wwwにおいたhtmlとPHPのファイルをhttp://localhost/で表示することができます。
Perlを利用するには、[サーバ環境設定]-[mod_perl]から[環境設定ディレクトリ]をクリックし(SpaceTagのインストール場所を変更していなければC:¥SpaceTag¥etc¥httpdフォルダが開く)、「httpd.conf」ファイルを編集します。
「httpd.conf」ファイルに以下の行を追加します。「AddHandler cgi-script .cgi」はコメントアウトされているはずですので、#をはずします。
#--追加ここから--
AddHandler cgi-script .cgi
AddHandler cgi-script .pl
<Directory "D:/www">
AllowOverride None
Options +ExecCGI
Order allow,deny
Allow from all
</Directory>
#--追加ここまで--
保存し、Apache2を[Restart]します。これで完了です。
『Options +ExecCGI』で「+」がないとデフォルト(他の行)で既に指定されているオプションが無効になります。例えば、indexファイルがないときに表示されるファイル一覧ページが「You don't have permission ...」などとでて表示されなくなります。
[テスト用サンプルソース]
=== test.php ===
<? phpinfo(); ?>
(PHPのバージョン情報などが表示される)
=== test.cgi or test.pl ===
#!perl
print "Content-type: text/html¥n¥n";
print "test<br>¥n";
exit;