アプリ版:「スタンプのみでお礼する」機能のリリースについて

以下の環境で開発をしています。

OS: windows XP
ActivePerl 5.8.8
apache 2.0.64

レンタルサーバで利用しやすいようにperlスクリプトの第1行目に
#!/usr/bin/perl
を記述していますが、ActivePerl のありどころが C:\dev\perl\bin\なので第1行目を
#!/dev/perl/bin/perl 
にしなければなりません。
#!/usr/bin/perlの記述をそのまま使う為に巷でよく言われているようなwindowsのジャンクション機能を利用しています。
Cドライブ直下に「usr」ホルダを作り、ここにC:\dev\perl\bin\のジャンクションを設定しました。
するとC:\usr\を覗くとbin\が存在します。つまりC:\dev\perl\bin\はC:\usr\bin\でアクセスできるようになります。
しかしこの状態で#!/usr/bin/perlの記述をそのまま使うと500エラーが出ます。
これ以外に何か良い方法はございませんでしょうか?

また同じような開発環境の皆様はperlスクリプトの第1行目をどのように対策されていますでしょうか?
宜しく御教授お願いいたします。

A 回答 (3件)

#2です。



>モジュールなんかはC:\dev\perl\bin\perl.exe自身が
>C:\dev\perl\bin\siteとかに 
>apacheを介さずに直接探しにいくので、ジャンクション設定は関係ないと思っているのですが、私の理解はどこが間違っていますでしょうか?
>教えていただければ嬉しいです。


残念ならが不正解です。
config.plを見てみるとよいでしょう。
    • good
    • 0

C:\dev\perl\bin\ だけのジャンクションを作成したのが失敗だと思います。


C:\dev\perl\Site やC:\dev\perl\lib など他に色々とフォルダがあり、基本のpmなどはそこから読み込むので。

リソキのlinkd.exeを使っているなら、

> linkd C:\usr C:\dev\perl

とやるべきじゃないですかね。

この回答への補足

ありがとうございます。
おっしゃる通りにC:\dev\perl\bin\と同列のフォルダをとりあえず全てジャンクション設定したら問題解決しました。
しかし正確な仕組みが理解できていません。
モジュールなんかは\siteや\libから検索するのはわかっていますが、これはperl.exeが探しに行くんですよね?違うかな?
ジャンクション設定はapacheにperlのありかを明示するために必要な設定であって

モジュールなんかはC:\dev\perl\bin\perl.exe自身が
C:\dev\perl\bin\siteとかに 
apacheを介さずに直接探しにいくので、ジャンクション設定は関係ないと思っているのですが、私の理解はどこが間違っていますでしょうか?
教えていただければ嬉しいです。

補足日時:2011/07/14 16:37
    • good
    • 0

3年前のQ&Aがいまでもヒントになるようならどうぞ。



http://oshiete.goo.ne.jp/qa/4323948.html の私の過去の回答ANo.2 へのお礼

この回答への補足

レジストリをいじるのは後で問題があった時、解決させる自信がないので今回は見合わせます。しかしながら参考になりました。
回答ありがとうございました。

補足日時:2011/07/10 15:20
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!