use CGI::Carp qw(fatalsToBrowser);
とすると、InternalServerErrorの画面に、error_logに出力されるような内容のエラーメッセージを出してくれるので、開発が効率的に進む。
ただ、開発機ではいいんだけど、本番機ではこのエラーメッセージを出したくないので、開発機からテスト機にデータをrsyncで同期させた後、テスト機のcgiデータのuse CGI::Carp qw(fatalsToBrowser);をコメントアウトするシェルを作った。
下記がそのシェル。引数に対象となるcgiディレクトリを指定すると、cgiファイルの対象レコードをコメントアウトする。対象ディレクトリが階層化していても問題なし。
#!/bin/sh if $1 ;then echo "no directory path" echo "usage : ./sed_fatalToBrowser.sh directoryPath" exit 0 fi for f in `find $1 -name '*.cgi'` do echo ${f} sed -e "s/use CGI::Carp*/\#use CGI::Carp/g" ${f} > ${f}.new mv ${f}.new ${f} chmod 755 ${f} done