« 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;

このブログ記事について

このページは、maruが2006年11月27日 09:00に書いたブログ記事です。

ひとつ前のブログ記事は「WindowsにApache2,PHP,Perl,MySQLを一括インストール」です。

次のブログ記事は「文字コード"EUC-JP"と"UTF-8"の違い」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。