最近、Perlを初めたのですが、
CGIがうまく動作しません。
他のCGIは動作しているので
CGIは動作する環境だと思います。
http://からフルパスでCGIを実行しても、
以下のエラーがでます。
-------------------------------------
500 InInternalServerError
サーバーエラーです。
以下の理由が考えられます。
パーミッション等の設定が
間違っている可能性があります。
サイト管理者にお問い合わせ下さい。
-------------------------------------
ちなみに以下のような簡単なCGIも同様です。
=====================================
#!/usr/local/bin/perl
print "Content-type: text/html\n\n";
print "<html><head>\n";
print "<meta http-equiv=Content-Type content=text/html; charset=x-sjis>\n";
print "<title>StartCGI</title></head>\n";
print "<body>\n";
print "<p align=center><font size=4>初めて書いたCGI</font></p>\n";
print "</body></html>\n";
exit;
=====================================
なぜなんでしょう。
困ってます。
ご教授の程、宜しくお願い致します。
No.6ベストアンサー
- 回答日時:
結局、動かないのはサンプルで質問に書いていただいたコードなのでしょうか?
だとしたら#5さんの回答を参照してもらうとして、ローカルで動かす方法をご紹介します。
1. 参考URLから、ActivePerlをダウンロードします。
2. インストールして、コマンドラインから、「perl (ファイル名)」とやるだけです。
コードに間違いが無ければ、
Content-type: text/html
<html><head>
~
のように表示されます。エラーがあれば、行番号とともに表示されますのでそちらを参考にデバッグしてみて下さい。
Windows でPerlを動作させるための詳細は以下のサイトなどをご覧下さい。
http://www.harukaze.net/~mishima/perl/win/winper …
参考URL:http://www.activestate.com/Products/Download/Get …
No.8
- 回答日時:
動作しているCGIとテストしようとしているCGIのディレクトリは一緒ですか?実行を許可されていないディレクトリではエラーになります。
ありがとうございました。
無事に解決致しました。
理由はよくわからないのですが、
そのフォルダがよくなかったみたいで
新しいフォルダをそのフォルダの下に作って実行したら、うまく動作致しました。
他のCGIはそのフォルダでも動作していたのでなぜ私が作ったCGIだけがうまく動かなかったのかわかりません。
沢山の皆様にご回答を頂き感謝しております。
ありがとうございました。
No.7
- 回答日時:
再度。
結構思い当たりそうなフシがなさそうですね...。
私が時々やる悪あがき(笑)をお試しください。
print "Content-type: text/html\n\n";
print "<html><head>\n";
を
print "Content-type: text/html\n\n";
print "<html><head>\n";
のようにコードで改行を出すだけではなく、実際の改行を入れる。
#!/usr/local/bin/perl
を
#!/usr/local/bin/perl -w
を付けて動かしてみる。
なぜかこれで動いたことがあります。
サーバのエラーログが見られれば、もうちょっと原因がつかめるんですが...。
No.5
- 回答日時:
私が思い当たるのは改行コードと拡張子の問題くらいです。
yu-ji さんはWindowsでソースコードを書いておられることと思います。WindowsはCR+LFを改行コードとしていますがUNIX系OSではLFだけで改行コードとしています。
そこでサーバーマシンがLinuxなどUNIX系OSを使っている場合、改行コードをUNIX用に合わせてやらないとエラーになることがあります。サーバーの設定によってはWindowsの改行コードのままでも読んでくれるのかも知れませんが、私の環境ではWindowsで書いたCGIスクリプトはやはり改行コードを変換しないとエラーになります。
Windowsでの改行コード変換ソフトは知りませんが多分いくらでもあると思います。また大抵のエディターには機能として附属していると思いますので調べてみて下さい。
あとはスクリプトファイルの拡張子が.plになっていないでしょうか。これもサーバーの設定によっては拡張子が.cgiでないとCGIスクリプトとして認識してくれない場合があります。
ありがとうございました。
無事に解決致しました。
理由はよくわからないのですが、
そのフォルダがよくなかったみたいで
新しいフォルダをそのフォルダの下に作って実行したら、うまく動作致しました。
他のCGIはそのフォルダでも動作していたのでなぜ私が作ったCGIだけがうまく動かなかったのかわかりません。
沢山の皆様にご回答を頂き感謝しております。
ありがとうございました。
No.4
- 回答日時:
もう一つ思い当たる節を...。
改行コードを確認して見て下さい。
BINARYモードでアップされているのであれば、
サーバーに上げる時に、ASCIIで送ると正しく変換されると思います。
ありがとうございました。
無事に解決致しました。
理由はよくわからないのですが、
そのフォルダがよくなかったみたいで
新しいフォルダをそのフォルダの下に作って実行したら、うまく動作致しました。
他のCGIはそのフォルダでも動作していたのでなぜ私が作ったCGIだけがうまく動かなかったのかわかりません。
沢山の皆様にご回答を頂き感謝しております。
ありがとうございました。
No.3
- 回答日時:
質問に書かれているサンプルが動作しないのだとしたら、原因はあと2つしか思いつきません。
1. コードに使用できない文字が含まれている。
ファイル内に全角スペースなどが紛れ込んでいませんか?
*ローカルで動作するのであればこれは当てはまりません。
2. サーバーに障害が発生している。
*同じサーバー上で別のCGIが動作しているのであればこれは当てはまりません。
このどちらでもないとしたら、ローカルの環境で動作するかどうかと、逆に動作しているコードを見せていただきたいところです。
この回答への補足
1.コードに使用できない文字ですか・・・
全角スペースの他にどんな文字があるのでしょう?
コメント、文字列としては全角はOKですよね。
2.他のCGIは正常に動作しておりますのでサーバの問題ではなさそうです。
ローカルで、動作させる方法がわからないのですが。
それと、正常に動作しているコードは結構長いので
ここにのせるのはちょっと無理ですね。
著作権の問題もあるかもしれないので。
No.2
- 回答日時:
とりあえず2つ。
1. パーミッションの設定が間違っている
このファイルのパーミッションを、「755」などにしてみて下さい。
2. Perlへのパスが通っていない
#!/usr/local/bin/perl
を、他の動いているCGIと同じかどうか確認してください。
例えば、「#!/usr/bin/perl」にする必要がある場合があります。
この回答への補足
1.パーミッションは755にしております。
ちなみに777でも試してみましたが駄目でした。
2.Perlへのパスは他のCGIと同じです。
「#!/usr/bin/perl」もすでに試しておりますが、駄目でした。
ありがとうございました。
無事に解決致しました。
理由はよくわからないのですが、
そのフォルダがよくなかったみたいで
新しいフォルダをそのフォルダの下に作って実行したら、うまく動作致しました。
他のCGIはそのフォルダでも動作していたのでなぜ私が作ったCGIだけがうまく動かなかったのかわかりません。
沢山の皆様にご回答を頂き感謝しております。
ありがとうございました。
No.1
- 回答日時:
こんばんは。
エラーメッセージが指していることは確認されましたか?
パーミッションは755になっていますか??
ありがとうございました。
無事に解決致しました。
理由はよくわからないのですが、
そのフォルダがよくなかったみたいで
新しいフォルダをそのフォルダの下に作って実行したら、うまく動作致しました。
他のCGIはそのフォルダでも動作していたのでなぜ私が作ったCGIだけがうまく動かなかったのかわかりません。
沢山の皆様にご回答を頂き感謝しております。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- HTML・CSS アコーディオンメニューが思うように動作しません。 1 2023/08/20 16:48
- CGI CGIで出力するhtmlの<!DOCTYPE html>等のタグは要りますか? 2 2023/02/05 21:26
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- HTML・CSS html cssのmargin 5 2022/12/03 11:04
- HTML・CSS cssの display: flex;で横並びにならずに困ってます 1 2022/12/04 13:18
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Perlでの数字の12桁化
-
malformed header from script....
-
サムネイルCGI
-
Application.ScreenUpdating = ...
-
formで特定のinputを送信しない...
-
JSONで文字列が長い時
-
文字の横にプルダウンを表示さ...
-
どちのほうがすきですか?
-
int(input("○○"))の使い方
-
16進の10進変換について
-
vbaでxmlからNodeListでデータ...
-
[html]ラジオボタンを使った診...
-
C言語 leetcode21 Merge Two So...
-
セレクトメニューで2つの項目...
-
ACCESS テキストボックスを隙...
-
qq!!の意味を教えてください。
-
セレクトボックスから別窓にジ...
-
SELECT OPTIONの中身をコピペ...
-
関数「exists」と「defined」の...
-
「*:*」って何を意味するのでし...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
my $html<<EOMの意味を教えてく...
-
malformed header from script....
-
結果を得て自動的にページ移動...
-
Perl CGIの中で # を使ってコメ...
-
パソコン → パャRン
-
shift-jisからutf8に変換
-
CGIから出力される文字が化けて...
-
フリーCGI ラジオボタンの改行...
-
テキストエリアにテキストファ...
-
HTMLのファイルにCGI処理結果を...
-
アクセス人数制限CGIについて。
-
初歩的なCGIですが その2
-
PerlでDBIを使いますが、結果セ...
-
ランダムに背景画像を変える方法。
-
Perlでの数字の12桁化
-
Pythonを用いてCGIを作る勉強を...
-
cgiでのデータ受信
-
CGIファイルを参照制御でき...
-
テキストエリアの改行表示
-
テキストファイルの読み込み
おすすめ情報