このスレッドはクローズされています。記事の閲覧のみとなります。
CGIが動かない理由が解らない |
|
- æ¥æï¼ 2013/12/15 22:44
- ååï¼ yoshida
- 1.不明点・障害内容:動くCGIと動かないCGIがある
2.ログの有無 :無 (有:その内容) : 3.Distribution :Cent Version :6.2 4.Service Name : Version : 5.ネットワーク構成:
お世話になります。さくらインターネットのVPSでホームページを運用しています。 今までは何事もなく動いていたあるCGIが突然動かなくなりました。他のCGIは正常に 動いており、掲示板なども問題なく動作しています。 そこで、こんなCGIをテスト用に書いてみました。
#!/usr/local/bin/perl print "Content-type: text/html¥n¥n"; print "<HTML>¥n<BODY>¥n<TITLE>CGI Script TEST</TITLE>¥n</BODY>¥n"; print "The CGI script was worked!¥n</HTML>¥n";
これをあちこちのディレクトリに転送して動作を確認しているのですが、 すでに正常動作しているディレクトリに転送しても動作しません。 もちろんperlのパスはあっていますしパーミッションも755にしています。 そのディレクトリに置いている掲示板は正常動作しています。 これまでにもCGIは色々設置した経験があり、いずれも正常動作しています。 なぜなのか、さっぱりわけが解りません。 どなたか、なにか思い当たる理由があれば教えて下さい。
エラーは500 internal server errorです。
|
Page:
[1]
[2]
[3]
[4]
[5]
[6]
|
■ コンテンツ関連情報
Re: CGIが動かない理由が解らない ( No.26 ) |
|
- æ¥æï¼ 2013/12/17 15:09
- ååï¼ アメリカン
- vi test.cgi
でファイルを開いてエスケープキーを押して(コマンドモードに) :set fileformat=unix (Enterキー)
またエスケープキーを押して(コマンドモードに) :wq (Enterキー)
これで改行が0aだけになると思います。 またダンプして確認してください。
|
Re: CGIが動かない理由が解らない ( No.27 ) |
|
- æ¥æï¼ 2013/12/17 18:10
- ååï¼ yoshida
- [root@hostname JGKxx2r3Wz]# od -tx1 -c test.cgi
0000000 23 21 2f 75 73 72 2f 6c 6f 63 61 6c 2f 62 69 6e # ! / u s r / l o c a l / b i n 0000020 2f 70 65 72 6c 0a 70 72 69 6e 74 20 22 43 6f 6e / p e r l ¥n p r i n t " C o n 0000040 74 65 6e 74 2d 74 79 70 65 3a 20 74 65 78 74 2f t e n t - t y p e : t e x t / 0000060 68 74 6d 6c 5c 6e 5c 6e 22 3b 0a 70 72 69 6e 74 h t m l ¥ n ¥ n " ; ¥n p r i n t 0000100 20 22 3c 48 54 4d 4c 3e 5c 6e 3c 54 49 54 4c 45 " < H T M L > ¥ n < T I T L E 0000120 3e 43 47 49 20 53 63 72 69 70 74 20 54 45 53 54 > C G I S c r i p t T E S T 0000140 3c 2f 54 49 54 4c 45 3e 5c 6e 22 3b 0a 70 72 69 < / T I T L E > ¥ n " ; ¥n p r i 0000160 6e 74 20 22 3c 42 4f 44 59 3e 5c 6e 54 68 65 20 n t " < B O D Y > ¥ n T h e 0000200 43 47 49 20 73 63 72 69 70 74 20 77 61 73 20 77 C G I s c r i p t w a s w 0000220 6f 72 6b 65 64 21 5c 6e 3c 2f 42 4f 44 59 3e 5c o r k e d ! ¥ n < / B O D Y > ¥ 0000240 6e 3c 2f 48 54 4d 4c 3e 5c 6e 22 3b 0a n < / H T M L > ¥ n " ; ¥n 0000255
これで動くようになりました。問題のCGIでも同じことを試してみます。
|
Re: CGIが動かない理由が解らない ( No.28 ) |
|
- æ¥æï¼ 2013/12/18 10:43
- ååï¼ アメリカン
- ご存知だと思いますが、Windowsでテキストを普通に作ると改行はCRLFになります。
転送ソフトにもよると思いますが、普通、転送するときにテキストモードで転送すると CRLFをLFのみに変換してくれます。バイナリーモードで転送するとCRLFのまま 転送されてしまいます。
もちろん、エディターでスクリプトを作るときに、改行をLFのみに設定してあれば バイナリー転送できます。
追記ですが、Windows機の端末からviで開いてテキストを貼り付けたりすると改行変換されるか されないか微妙です。 また配布されている掲示板等のスクリプトはサーバー機で展開することも考慮して最初からLFのみに なっていますから、Windows機で展開してバイナリー転送しても問題ありません。 注意するのは自作のスクリプトや配布スクリプトを改変してセーブするときです。
文字コードも日本語を扱うときには要注意です。システムの文字コード、スクリプト自体の 文字コード、スクリプトが扱うデーターの文字コード、DBならDBが保存する文字コードなど しっかり把握した上でないと適切なスクリプト等は作れません。
|
Re: CGIが動かない理由が解らない ( No.29 ) |
|
- æ¥æï¼ 2013/12/17 15:24
- ååï¼ yoshida
- アメリカンさん
管理者さん Johannさん
皆さんありがとうございました。どうして問題のCGIだけCRLFで送られていたのか 解りませんが、注意して進めたいと思います。
|
Page:
[1]
[2]
[3]
[4]
[5]
[6]
|
■ その他