さくらインターネットサーバーにてCGIの実行で詰まった話 [505 Internal Server Error]

いや、なんか2日くらい詰まった挙句、結構シンプルな解決法だったので覚書としても...

まあ題名のとおりです

そんな内容のない記事なんか書きたくねえ!なんてアホみたいなことを考えているのですが、少しでもアウトプットを習慣づけていったほうが自分の記憶にも定着するし他の困ってる人にたまたまこの記事が目に入って理解の一環になればいいなとか考えています(単に僕が字を書くのが好きってのもありますが)

 

505 Internal Server Error

f:id:ten0313:20180822211838p:plain

ってのが出るんですよ、ファイルのパーミッションはあってるはずだし(755にしている)パスもきちんとさくらサーバー指定のものにしています。

*1

これがさくら指定のPerlnoやつです。ファイルの頭につけます。

Perlで書いたCGI

*2

こんな感じです。うまく行けば「Perl Programming」が出るはず。

解決しました。

このファイルが入っているディレクトリのパーミッションも変えなければいけないんですね。僕はそれにハマってました。

ディレクトリのパーミッションを755に変えて(僕はさくらのファイルマネージャーから変えました)

f:id:ten0313:20180822212752p:plain

やったー!!!!成功ですね〜

cgi完全に理解マンになるべく精進していこうと思います。

ばいばい

 

追記なんですけど(※18年8月26日すいか)

カレントディレクトリのパーミッション、777で行けへんかなあ(755も兼ねてるし...みたいな考えだった)みたいな感じだったんですけど間違いでした。

さくらのレンタルサーバで、Premature end of script headersが出る : mwSoft blog

エラーログ見ろやって感じだったんですけど、さくらサーバーでサーバーコントロールパネルから直接見ることができました。

左のメニューバーのアプリケーションの設定、アクセスログの設定からエラーログの表示で見れました。便利ですね。

 

参考にしたの

「500 Internal Server Error」の原因と解決方法 | すぐ使えるサポート情報

CGI・PHP・SSI について – さくらのサポート情報

ウェブページのエラーメッセージ – さくらのサポート情報

さくらのレンタルサーバで、Premature end of script headersが出る : mwSoft blog

 

[ この記事はブログ投稿者の憶測や考えによりつくられています。

よって書いてある内容に誤りや言い間違いがあるかもしれません。もし修正したほうがいい場所や「こういった言い方のほうが”ソレっぽい”よ」などがありましたら後に記載してあります、リンク先のツイッターアカウントに教えてくださると嬉しいです:) ]

 

twitter.com

*1:/usr/bin/perl

*2: 1 #!/usr/bin/perl --
2
3 print "Content-type: text/html\n\n";
4 print "Perl Programming";
5 exit;