質問
-
ライト
CGIプログラムが実行できない -
本文:
hello.cgi
をドメインの真下に作って、
権限を755にして
ファイルの中身は
#!/usr/bin/perl
# レスポンスヘッダの出力
print "Content-type: text/html; charset=Shift_JIS\n\n";
# HTML本体の出力
print "<html>\n";
print "<body>\n";
print "<p>CGIの世界へようこそ!</p>\n";
print "</body>\n";
print "</html>\n";
上記です。
http://www.netnotukaikata.info/hello.cgi
と入力しても 500 internal server error がでます。
また cgi_private とフォルダを作って、権限は777で、その下に上記と同じ hello.cgi を置いても 500 internal server error が出ます。権限は755です。
cgiが実行できないのでしょうか?
- 緊急度:通常投稿者:blueseabluemoonさん投稿時間:2018/10/06 17:52
回答 No.7600
-
本文:
補足ですが、
・UTF-8 で保存するなら
print "Content-type: text/html; charset=Shift_JIS\n\n";
の部分ももちろん書き換える必要があります。
(Shift_JIS → UTF-8)
・FTPクライアントを用いてアップロードしているのでしたら、
ASCII(アスキー)モードでアップロードすると改行コードに関しては自動的に変換されます。
文字コードに関しては、高機能なFTPクライアントであれば変換機能もあるかもしれませんが、
通常は、もともとのファイル自体を適切な文字コードにしておきます。
- 投稿者:ayaguchiさん 投稿時間:2018/10/06 18:44
回答 No.7601
-
本文:
... まあ、テキストファイルを保存するときの文字コードでは?
〇 hello.cgi は、ちゃんと Shift_JIS で保存していますか?
(UTF-8の BOM付だと、確かに 500エラーになりますね)
〇 日本語をまったく含まないサンプルでも、エラーになりますか?
例えば、
#!/usr/bin/perl
print "Content-type: text/html; charset=Shift_JIS\n\n";
print "<html>\n";
print "<body>\n";
print "<p>Hello CGI world!</p>\n";
print "</body>\n";
print "</html>\n";
では?
〇同じファイルをファイルマネージャの方で保存しなおしても500エラーになりますか? (文字化けはあったとしても別の理由なので、ここでは気にしない) - 投稿者:ジョバンニさん 投稿時間:2018/10/06 19:13
回答 No.7602
-
本文:
遠い昔のマイクロソフトのサーバーのASPの者なので、こんな落とし穴があるなんて解んないですよ、文字コードとリターンコードなんて、shift-jisじゃないと携帯のブラウザで読めないのでは?
- 投稿者:blueseabluemoonさん 投稿時間:2018/10/06 19:59
回答 No.7603
-
本文:
> shift-jisじゃないと携帯のブラウザで読めないのでは?
ほぼ完全に廃れた感のあるi-mode ですら、5〜6年前には、utf8に対応しています。
どのみち、いわゆるガラ携のブラウザは、TLS1.2 に対応していないので、もう無視していいのではないかと思いますよ。
(強いて言えば、らくらくフォン対応をどうするかくらいかと。) - 投稿者:ジョバンニさん 投稿時間:2018/10/06 20:21
回答 No.7599
この回答がベストアンサーです
スターサーバーの有料プランですよね?
であれば、CGIは実行可能です。
755 で合っています。
Forbidden とかにはなっていないですし、
> 500 internal server error
おそらく、サーバ上でこのスクリプトファイルを実行しようとしたときにエラーが出ているからでしょう。
このスクリプトファイルの改行コードは合っていますか?
CR+LF や CR ではなくて LF です。
あと、 Shift_JISで保存しているのかと思いますが、
スクリプトにつかう文字コードセットは、
Shift_JIS はやめたほうがよいと思います。
EUC-JP か UTF-8 のほうがよいです。
スターサーバーの「ファイルマネージャー」上で、編集機能を用いて、文字コードをUTF-8、改行コードをLFに設定してファイルを保存して試してみてください