インデックス
ActivePerl以外の選択肢 - StrawberryPerlを使う
WindowsにおけるPerlの代名詞と言っても過言でないほど普及しているActivePerl。通常使うにはこれで十分なのですが、Perlを使いこなす上では欠点があります。 それは、ある意味Perlの肝とも言えるCPANが使いにくいこと。
単にモジュールをインストールしたいだけであればppmを使えば簡単に行えますが、問題はppmで使いたいモジュールが提供されていない場合です。 CPANからソースをダウンロードしてコンパイルするのは、初心者にはちょっと敷居が高い方法です。
そこで、出てくるのがPerl自体をActivePerl以外にする方法です。Perlのソース自体は公開されていますので、これをコンパイルすればWindowsで使えるPerlができますし、同じ環境でコンパイルすればCPANのソースも使用できます。 コンパイル環境もCygwinやcoLinuxを使えば無料で整えることができますが、これまた初心者には大変。そこでお勧めなのが、StrawberryPerlです。
このStrawberryPerl、インストール方法はActivePerlと同様にインストーラーを実行するだけにもかかわらず、Perlとコンパイラ(gccなど)を一緒にインストールしてくれる優れものです。 つまり、CPANのコードもダウンロード、コンパイル、インストールまで自動で行えるようになるのです。
StrawberryPerlのインストール
1.ダウンロードする
StrawberryPerlの公式サイトからインストーラーをダウンロードします。最新版でよければトップページからダウンロードできます。
2.インストールする
インストーラを実行すると、インストールが始まりますので、画面の指示に従ってインストールを行っていきます。途中でインストール先を指定する画面が出ますが、通常は初期値のままでかまいません。 (画面はWindowsXPですが、Windows7などでも途中でシステム変更の確認が出るくらいで基本的には同じです)
3.完了
以下の画面が出たらインストールの終了です。指定したフォルダ内にPerlやgccなどのコンパイラがインストールされています。
環境変数のパスにもインストール先フォルダが追加されていますので、フルパスで指定しなくても、コマンドプロンプトから直接実行することができます(もしパスが通っていない場合は、一度再起動してください)。
CPANを使ってみる
これでStrawberryPerlを使用する環境は整いました。ActivePerl特有の機能を使っていなければ、特に意識することなく同じように使用することができます。 また、標準的なモジュールはすでにインストールされていますので、ほとんどのスクリプトはそのまま動かすことが可能です。
しかしせっかくですので、StrawberryPerlのメリットであるCPANを使って、XML::DOMをインストールしてみます。
1.CPANクライアントの起動
プログラムメニューから『CPAN Client』を選択して起動します。
2.インストールコマンドの入力
コンソールに『install XML::DOM』と入力し、Enterを押します。
3.自動でインストール完了
インターネットにつながってさえいれば、特に設定を行うことなく、自動でダウンロード、コンパイル、テスト、インストールまで行ってくれます。ActivePerlのようにppdを探してネットをさまよう必要はありません。
Apacheをインストールする
Perlを使うだけなら上記までで完了ですが、CGIを作るのであれば、Webサーバーは必須です。 Windowsで動くWebサーバーはいくつもありますが、多くのサーバーではApacheが使われているのでここでもApacheをインストールします。
1.ダウンロード
Apacheの公式サイトからインストーラーをダウンロードします。 サーバーのApacheとバージョンをあわせたいなど、特に理由がなければStable Releaseを選択すればよいでしょう。
インストーラーの種類はWin32 Binaryを選択します。SSLの有無で2種類有りますので、必要な方を選択します。ここではSSL有りをダウンロードしています。
2.インストール
インストーラを起動してインストールを勧めていきます。テスト用サーバーであれば、基本的には初期値でかまいません。
3.CGIの設定 (1)
CGIが動かせるように設定を行います。Apacheの設定ファイル『httpd.conf』(デフォルトでは"C:\Program Files\Apache Software Foundation\Apache2.2\conf"にあります)を開き、無効になっている下記の行を有効にします。
#AddHandler cgi-script .cgi ↓ AddHandler cgi-script .cgi
また、CGIを動かしたいディレクトリのディレクティブにExecCGIを追加します。デフォルトでは"cgi-bin"でのみ動くように設定されています。
4.CGIの設定 (2)
Perlのパスはスクリプトファイルの先頭で指定するのが基本ですが、Apacheの設定ファイルに下記の行を追加することで、レジストリで指定することも可能です。 追加する場所はどこでもかまいませんので、ファイルの末尾あたりに追加するとよいでしょう。
ScriptInterpreterSource Registry-Strict
メリットとしては、サーバーにアップロードするときにPerlパスを書き換えなくてもすむことですが、 デメリットとして、この設定はセキュリティ上の脆弱性にもなり得ますので、公開するサーバーで使用する場合はApacheのマニュアル等をよくご確認ください。
5.CGIの設定 (3)
レジストリにPerlのパスを追加します(レジストリの変更はシステムに重大なダメージを与える場合がありますので、自己責任で行ってください)。基本的には下記のようにcgiの拡張子に追加すればいいですが、ActivePerlをインストールしている場合など、 "cgi_auto_file"へリンクされていることもありますので、そちらに追加してもかまいません。 面倒な場合は、こちらのファイルを実行すれば適用できます。
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.cgi\shell\ExecCGI\command] "C:\strawberry\perl\bin\perl.exe" "%1"
6.Apacheの再起動
変更を適用するため、タスクバーのApacheのアイコンをダブルクリックして、『Apache Service monitor』を起動し、Apacheを再起動します。
上記で設定は完了です。