Windows版ApacheでCGI(Perl)を使う方法 ActivePerl

XAMPPってApache、MySQL、PHP、Perlがまとめてインストールできるんだけど、ってことは別々にApacheとかをインストールしたらPerlって入らないってことか、、

Perlが入らないって事はCGIが使えないんだね

勘違いしてる人もいるかもしれないんだけど、CGI=Perlじゃないよ

CGIってのはCommon Gateway Interfaceの略で、『Webサーバが、リクエストに応じて、プログラムを起動するための仕組み』だから、 呼び出される言語はPerlじゃなくてもいいんだよ
ヾ(o゚ω゚o)ノ゙
でもフツーはやっぱCGIといえばPerlみたい


Windows版のApacheをインストールしたときにデフォルトの設定ファイルhttpd.confを開いてみたら CGIを使うときの設定が書かれてるから、設定するとCGIは使えるようになるけど、そこから呼び出されるPerlはいないから500エラーがでちゃうよね


じゃあWindowsのApacheでPerlを使うにはどうしたらいいの?ってことになるんだけど、

1つにはWindows内にLinux環境を作って動作させる方法で、Cygwinを使ったり、 バーチャルマシン(VMWare)を使ったりするとか

あとはWindows版のApacheに組み込む方法だと、最初に出てきたXAMPPを使うってことでもできるよね
ヽ(・∀・)ゝ


もぉApacheをインストールしちゃって環境作ったからそんなのに乗り換えるのはヤダって人や、Perlを単体でインストールしたいのぉって人のために ActivePerlってツールがあるんだよ

ActivePerl公式サイト

ってことで、ここからはActivePerlの説明をするね ヽ(゚∀゚)メ(゚∀゚)ノ

インストール

インストールはActivePerlのサイトから、インストールファイルをダウンロードして実行するだけ

インストールがちゃんとできたか確認するには、コマンドプロンプトで

perl -v

って入力するとわかるよ
バージョンが表示されたらオケ

実行パスの設定

CGIファイルって先頭行にだいたい

#!/usr/local/bin/perl
とか
#!/usr/bin/perl

って書いてあるんだけど、これはPerlの実行パスのこと
「Perlのファイルは /usr/local/bin/perlとか/usr/bin/perlにあるよ」つー意味

ところがActivePerlでインストールするとPerlがC:\Perl\binにインストールされるから先頭行は

#!/perl/bin/perl
または
#!C:\Perl\bin\perl.exe

って書く必要がある

XAMPPならC:\xampp\perl\binだから

#!/xampp/perl/bin/perl
または
#!C:\xampp\perl\bin\perl.exe

これだと本番環境がLinuxだったら開発環境と違っちゃうからファイルアップのたびに全ファイルを書き換えなきゃいけなくなる

それって不便だよね (゚´ω`゚)


先頭行をLinuxと同じにしたいときには、C:\Perl以下のファイルすべてをC:\usrとC:\usr\local以下にコピーしちゃうと大丈夫だよ

binフォルダ以下だけじゃだめだよ

だって、それ以外のフォルダにPerlライブラリのファイルがあるんだもん

コピーしなくても、WindowsVistaならシンボリックリンクを使えばいいし、WindowsXPでもシンボリックリンクの拡張機能を使っちゃう手があるよ

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

Perlは、みんなが考えたライブラリをモジュールとして公開してるところがあるんだ
LinuxならCPANってところ

でもここからモジュールをゲットしても、ソースファイルが公開されてるだけなんで、使うためにはコンパイルしたりmakeしなきゃいけないから Windowsだと難しい
_| ̄|○
でもActivePerlを作ってるActiveStateはエライね

コンパイル済みですぐに使えるパッケージをPPM(Perl Package Manager)ってのでリポジトリからダウンロードできるようになってるの

すげー ヽ( ゚д゚ )ノ

昔はコマンドプロンプトでダウンロードするシステムだったんだけど、今は楽チンツールでできちゃうッス
(今でもコマンドプロンプトでもダウンロードできる)

PPMでモジュールのインストール

Perl Package Managerを実行するとこんな感じ


『All Packages』をクリックすると、インストールされてるものも、されてないものも全部のパッケージが表示される


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


そうするとアイコンが変わって、インストール予約になる
ここではまだインストールされてないから注意してね


File → Run Marked Actions をクリックするとインストールされる


PPMでモジュールのアンインストール

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


アイコンが変わって、アンインストール予約になる
インストールのときと同じで、まだ削除されてない


File → Run Marked Actions をクリックすると削除される


PPMでモジュールのリポジトリ管理

ActiveState以外からもActivePerl用のモジュールは公開されてて、そのリポジトリを追加しちゃうと いろんなパッケージがインストールできる
ローカルのファイルからもインストールできるらしい

Edit → Preferences をクリック


Repositoriesタブでリポジトリ管理ができる

メニュー

渋谷・中目黒のプログラマー募集中!未経験OK!