先日まではJava案件がメインだったのですが、Perlの案件があり、これに取り組むことに。
で、とりあえずローカルに環境を構築しようと思いましたが、これがすげー大変でした。
PerlってCPANってライブラリ集みたいなものがあるんですけどバージョンが違ってうごかなかったり、そもそもwindowsで動かしている情報があんまないんですよね・・・
結局あきらめてvagrantで仮想環境を構築したんですけど、windowsで環境構築する人の助けになることもあるとおもい、メモします。
Perlの環境構築Strawberryperl
まずはPerl自体の環境構築ですね。xamppが入って入ればperl自体は動くんですけど、前述したcpanが入らなかったりといろいろとトラブルが多いため、下記リンクのStrawberryperlを入れたほうがいいでしょうね。
ActivePerlが以前は有名だったようですが、今ではこちらのほうが使えるということでPerlをWindowsで使う方はこちらを選択肢に入れておいたほうが良いでしょう。
参考リンク
実行パスの設定
Perlではプログラムの一番上にPerlの実行プログラムを記述します。
Linuxでは #!usr/bin/perl と記述しますが、
windowsの場合 !C:\strawberry\perl\bin\perl になります。
が、これをいちいち書き換えていては大変です。設定ファイルに記述することもできないですし。
そこでwindowsでもusr/bin/perlでOKなようにシンボリックリンクを活用します。
/usrが C:\strawberry\perl に相当すればいいわけです。
管理者権限でコマンドプロンプトを実行し( C:\Windows\System32\cmd.exe を右クリックで「管理者を実行」を選びます。)、下記を記述すればOKです。
1 |
C:\> mklink /D usr c:\strawberry\perl |
参考リンク(xamppの例ですが原理は一緒です。)
WindowsのXAMPPでcgi(perl)をパスを/usr/bin/perlのまま動かす方法
Apacheの設定
他にcgiを実行するためにhttpd.confを編集します。
cgi-binのディレクトリ以下の設定を下記のように書き換えましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<Directory "C:/xampp/cgi-bin"> AllowOverride All -Options None +Options Indexes FollowSymLinks ExecCGI +AddHandler cgi-script .cgi .pl +AddHandler text/html .html +AddHandler text/css .css +AddHandler text/javascript .js +AddHandler image/gif .gif +AddHandler image/jpeg .jpeg .jpg .jpe +AddHandler image/png .png +AddHandler application/pdf .pdf Require all granted </Directory> |
上記の設定が書かれていないと、
- 画面にソースそのものが表示されてしまう
- 画像やcssなどが読み込まれない
- 500エラーが表示される
などが起こります。
参考リンク
おまけ
ここまでやったんですが、いろいろとあって結局windowsでの環境構築はあきらめました(汗)
Perlのインストールとは直接関係ないですが、cpanのコンパイルをしようと思い、MinGWというコンパイラをwindowsにインストールしました。
結局、今回はこれで問題は解決しなかったのですが、windowsでLinuxコマンドが使えるようになり、何気に役立っています。
参考リンク
MinGW – Minimalist GNU for Windows