XServerでCGIが動作しない
[Home]

 CGIが動かない

 最初に

CGI は何かと言えば、言わずと知れた HTML の言語です。 これを XServer で動かそうとすると500エラーが出て動かない場合があります。
そんな方のために、 XServer 上で CGI でプログラムを書く方法を記載します。
XServer画像
XServer の WEB サイトに表示させるために CGI のプログラムを書いてみてください。 内容は以下のような簡単なもので結構です。

#! /usr/bin/perl
print "Content-type:text/html\n\n";
print "test";

これをコピペして、例えば index.cgi と言う名前で XServer の public_html フォルダ内に適当なフォルダを作成して、そこへアップロードしてください。
そして、そのフォルダをブラウザで指定すれば、白地の画面の左上に test の文字が表示されるのが正常な状態です。 当然ですが、私の環境では、同じやり方をして表示されました。

同様に表示された方は以下の記載内容に目を通す必要はありませんので、お帰りいただいて結構です。
もし、そうでない方は、以下の内容を読むと問題が解決できるかも知れません。
但し、これは XServer をお使いの方だけに参考になりそうなだけで、「さくらインターネット」や「ロリポップ」のレンタルサーバーをお使いの方には参考にはならないでしょう。

他のレンタルサーバーでは、 cgi-bin/ と言うフォルダがあって、そこへプログラムを置かないと動作しない場合が多いと思います。 どちらが良いかでは無くて、これが一般的であり XServer は初心者でも使えるように使い勝手を考慮しているだけだと思います。


(XServer の社内案内に掲載されていた画像を一部加工して作成)



 エラーの内容

エラーが出ると言っても、エラーは千差万別であり、 CGI でのエラーも色々あります。ここでは500エラーに限定しておりますが、その他のエラーが出る場合は初歩的なミスの場合が大部分ですから、落ち着いて見直せば自分で解決できる筈です。 500エラーが出た場合の画面を以下に示します。
cgi1画像
この画面は、 XServer の標準のエラー画面で、実際は自分好みの画面に差し替える事も出来るのですが、そんな事が出来る方が見ている事は考えられませんので、同じ画面になっていると思います。

何回やっても同じエラーが出ますので、私も調べまくりました。
#! /usr/bin/perl -- のように「--]を付けると直ったとかの記事があったりして試してみましたが変わらず、文字コードや 改行コードの変更、あるいは index.cgi のパーミッションも色々変えてみましたが変わりませんでした。
しまいには、ブラウザのキャッシュが利いていて直っているのに表示されないのではないかとか、かなり時間の無駄をしました。
問題は XServer のトラブルの解説にあるようです。
cgi2画像
下段に記載の「実行権限」があるとエラーが出ると記載されておりますが、「実行権限」は記載されていても問題ありません。
エラーが出るのは、「実行権限」ではなくて「書込権限」が記載されている場合です。
CGI が記載されているフォルダと CGI の書込権限を削除すると、エラーは嘘のように出なくなります。
それでもエラーが出たら責任を取るかって?。そんな人まで面倒は見れませんし、私の知った事じゃ無いです。(無駄な時間を過ごしたので、いらついております)

[Home]