- ベストアンサー
plalaのcgiサーバへのPerlプログラムのUPについて
windows上のローカルサーバで、自作のperlプログラムを動かし、きちんと動作したのでplalaのcgiアカウントをとり、UPした後、パーミッションもplalaの注意書きに書かれていたとおり、ディレクトリ以外のバイナリや、テキストを「704」に変更しました。 Perlへのパスも間違っておらず、プログラムミスということもないと思っています。 しかし、UPしたcgiファイルにアクセスしようとすると、「Internal Server Error」と表示され、パーミッションを「755」などにかえても、パーミッションがおかしいとでます。 いったいパーミッションを何にすればよいのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
perlのパスは、/usr/local/bin/perl になっていますか? その他 http://www.plala.or.jp/access/community/phps/ucgi_main.html で設定を確認してみてください
その他の回答 (2)
- aero115241
- ベストアンサー率20% (1/5)
私もぷららにアップしたばかりで、詳しくは分かりませんが、パーミッションはディレクトリ「705」、バイナリ、テキストは「704」で間違いないと思います。 先週末、アップした時はそれでOKでした。FTPは、FFFTPを使用して、属性変更で修正しました。
お礼
パーミッションはやはり、plalaにか言えあったとおり704でOKでした。 また、問題は無事解決できました。どうもありがとうございました。
- xjd
- ベストアンサー率63% (1021/1612)
アップロードしたcgiの改行コードはどうなっていますか? windows形式(CR/LF)になっていたら、unix形式(LF)にしてみてください。
お礼
分かりました! 色々と、どこがまずいのか、簡単なプログラムからどんどん付け足していった結果、「@」に原因があることが分かりました。 どうやら、 print <<"EOM"; <html><body> <a href="mailto:xyz@goo.co.jp">Mail</a> </body></html> EOM のように、文字列として認識させていても、@だけは、別物ととるらしく、「\@」とすればOKでした。 ちょっと不思議でした。 どうも、ありがとうございました。
補足
TeraPadを使い、LF形式にして、再度UPしてみましたが、結局「500 Internal Server Error」がでてしまいました…。 UPするまえの改行コードをLFに変換したファイルをwindows純正のメモ帳で開いてみると、改行が変になっていたので、LFになっていたのは間違いないと思います。
お礼
無事解決することができました。 プログラム中で、@がどうも、文字列として認識されないようです…。 どうもありがとうございました。
補足
お答えありがとうございます。 再度確認してみましたが、やはり #!/usr/local/bin/perl となっており、あっていました…。