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タブでリポジトリ管理ができる