Windows版ApacheでCGI(Perl)を使用する方法 ActivePerl

ActivePerlのインストール
実行パスの設定
Perlモジュールのインストール

Windowsには標準ではPerlは入っていないため、ApacheをインストールしてもCGIを使用することはできません。
Windows版でもApacheの設定ファイルhttpd.confにはCGIの設定項目の注意書きなどが書かれていますが、設定してもPerlがないので動きません。(500エラーが出ます)

CGIとPerlの違いは、CGIはプログラムを呼び出す仕組み、Perlはプログラム言語です。
一般的にCGIはPerlを呼び出すことが多いため、同一視されることが多いです。
つまりApacheでCGIの設定をしても、呼び出されるPerlが存在しないのでエラーとなるわけです。

Windows用のPerlをインストールするには、ActivePerlというソフトがあります。
XAMPPとは違い、単体でインストールができるのでApacheなどを別々にインストールした場合に使用できます。
公式サイト

これ以外にもWindowsでPerlを使うにはCygwinを使う、XAMPPを使う、 バーチャルマシン(VMWare)を使うなどの方法があります。

[参考記事]CGI(Perl)をApacheで使用するときの設定
[参考記事]EclipseでCGI(Perl)を使う方法

インストール













インストールが正しくできたかを確認するには、コマンドラインから

perl -v

を実行して、バージョンが表示されれば完了です。

実行パスの設定

ActivePerlをインストールすると

C:\Perl\bin

に実体ファイルが置かれるので、perlの実行パスは/perl/bin/perlとなります。
つまりCGIの1行目には次のように書く必要があります。

#!/perl/bin/perl

XAMPPの場合はC:\xampp\perl\binにインストールされるので、#!C:\xampp\perl\bin\perl.exeと書きます。

Linuxなどでは /usr/local/bin/perlや/usr/bin/perlなので、CGIの1行目は

#!/usr/local/bin/perl

とか

#!/usr/bin/perl

とか書くので、このままではWindows用にソースの書き換えが必要になります。
こうなってしまうと不便ですし、ミスしてバグが起こったりします。

Linuxと同じパスで実行できるようにするには、C:\Perl以下のファイルすべてをC:\usrとC:\usr\local以下にコピーします。
PerlライブラリなどがあるのでC:\Perl\bin以下ではバグが発生することがあります。

またファイルをコピーしなくてもシンボリックリンクなどを使用する方法もあります。
[参考記事]Windowsでシンボリックリンクを使う方法

Perlモジュールのインストール

モジュールは、LinuxではCPANから入手しますが、WindowsではmakeやCコンパイラがないため、入手しても使えるようにするのは大変です。

そこでActivePerlではコンパイル済みのファイルをリポジトリよりダウンロードするPPM(Perl Package Manager)という機能が備わっています。
ただしCPANより公開は遅いです。

PPMでインストール(GUI)

ActivePerlをインストールすると『すべてのプログラム』の中にPerl Package Managerが追加されます。


インストール可能なものを含めてすべてのパッケージを表示するには『All Packages』をクリックします。


インストールしたいパッケージを右クリックして、Installを選択します。


アイコンが変わり、インストール予約になります。
この時点ではまだインストールされていません。


File → Run Marked Actions をクリックするとインストールが始まります。


Perlモジュールのアンインストール(GUI)

アンインストールしたいパッケージを右クリックして、Removeを選択します。


アイコンが変わり、アンインストール予約になります。
この時点ではまだアンインストールされていません。


File → Run Marked Actions をクリックするとアンインストールが始まります。


Perlモジュールのリポジトリ管理(GUI)

Edit → Preferences をクリックします。


Repositoriesタブでリポジトリ管理ができます。

PPMでインストール(CUI)

コマンドラインから、下のコマンドを叩くだけです。

ppm install パッケージ名

「::」または「-」が含まれるパッケージはどちらでもインストールできますが、 「::」を使った場合、一覧が表示されるだけのパッケージもありますのでハイフンを使ったほうがいいです。

C:\>ppm install PadWalker
Downloading ActiveState Package Repository packlist...done
Updating ActiveState Package Repository database...done
Syncing site PPM database with .packlists...done
Downloading PadWalker-1.9...done
Unpacking PadWalker-1.9...done
Generating HTML for PadWalker-1.9...done
Updating files in site area...done
   6 files installed

PPMでアンインストール

コマンドラインから、下のコマンドを叩くだけです。

ppm remove パッケージ名

PPMのリポジトリの管理(CUI)

ppm repと入力すると、設定されているリポジトリの一覧が表示されます。

C:\>ppm rep
レトトトトツトトトトトトトツトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトソ
ウ id ウ pkgs  ウ name                           ウ
テトトトトナトトトトトトトナトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトエ
ウ  1 ウ 11170 ウ ActiveState Package Repository ウ
タトトトトチトトトトトトトチトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトル
 (1 enabled repository)

詳細を見るには、ppm rep describe 【ID】と入力します。

C:\>ppm rep describe 1
Id: 1
Name: ActiveState Package Repository
URL: http://ppm4.activestate.com/MSWin32-x86/5.10/1005/package.xml
Enabled: yes
Last-Status: 200 OK
Last-Access: 12 hours ago
Refresh-In: 12 hours
Last-Modified: 3 days ago

リポジトリを追加するには、ppm rep add "【リポジトリ名】" "【URL】"と入力します。

C:\>ppm rep add "theoryx5" "http://theoryx5.uwinnipeg.ca/ppms/"

ローカルディレクトリをリポジトリに登録する場合も同じです。
URLの代わりにディレクトリのフルパスを記述します。

C:\>ppm rep add "local" "C:\rep"

リポジトリの削除はrep delです。
この後ろにリポジトリの番号か、名前を続けると、そのリポジトリは削除されます。

C:\>ppm rep del 3

リポジトリを無効にするには、C:\>ppm rep off 【ID】と入力します。

C:\>ppm rep off 2

逆にリポジトリを有効にするには、C:\>ppm rep on 【リポジトリ名】と入力します。

C:\>ppm rep on theoryx

リポジトリの一覧で、リポジトリに振られている番号は検索の優先順位です。
優先順位の番号が振られていないものがあれば、そのリポジトリはオフになっています。

リポジトリの優先順位を上げるには、ppm rep up 【ID】と入力します。

C:\>ppm rep up 2

逆にリポジトリの優先順位を下げるには、ppm rep down 【ID】と入力します。

C:\>ppm rep down 2

関連記事

スポンサーリンク

<COLGROUP> テーブルの縦列をグループ化する

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る