Windows Apache で Shebang を無視する
PC/AV/Tech - 2018/11/19 03:16:00
Active Perl から Strawberry Perl に移行して困ったことは、usr\bin にインストールできないという事。
D:\ にインストールするとき、Active Perl はインストール先に d:\usr を指定すると perl.exe への PATH は d:\usr\bin\perl.exe となる。
しかし、Strawberry Perl は D:\usr とすると D:\usr\perl\bin\perl.exe となってしまう。
WEB サーバーの大半は /usr/bin/perl であったり usr/local/bin/perl だったりするので、そのように書いたままでは Strawberry Perl の /usr/perl/bin/perl だと Apache はインタプリタが無いためにエラーになる。
ネットでは拡張子 CGI を perl.exe に関連付けしたうえで httpd.conf または .htaccess に ScriptInterpreterSource registry と記述すれば、スクリプトのインタプリタに関連付けされたプログラムを使用するようなるとあったが、当方の環境では効果無かった。
そこでもう 1 つの解決としては d:\usr\bin というディレクトリを作成し、Strawberry Perl のインストールしたディレクトリから perl.exe をコピーするという荒業。
ハック的な解決法っぽくて少し気持ち悪いが、とりあえずエラーも出ずに動作したので大丈夫だと思う。
Windows Apache で Shebang を無視する
http://0pm.0am.jp/memo3/index.cgi?entry=20181119_031600