質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.32%

  • CentOS

    2832questions

    CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

  • Apache

    1917questions

    Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

  • Perl

    464questions

    Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

CGIが動きません3

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 673

trm

score -73

あるcgiを起動すると INTERNAL SERVER ERROR と出ます。
エラーログは、

[Wed Oct 10 05:01:56.526958 2018] [cgi:error] [pid 10534] [client 2400:4050:a1:6200:d253:49ff:fe36:e025:48837] End of script output before headers: 67b32.cgi, referer: http://trm7.mydns.jp/cgi-bin/60a11.cgi


です何が悪いのか教えていただけないでしょうか?

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • trm

    2018/10/10 12:08

    すいませんでした。やってみます。

    キャンセル

  • trm

    2018/10/10 12:09

    コンソール上で実行しましたがうんともすんとも言わずに終了しました。

    キャンセル

  • 退会済みユーザー

    2018/10/10 23:03

    複数のユーザーから「やってほしいことだけを記載した丸投げの質問」という意見がありました
    「質問を編集する」ボタンから編集を行い、調査したこと・試したことを記入していただくと、回答が得られやすくなります。

回答 2

+7

この内容では誰も再現確認できないので出直してきてください。
もしくはここまでやってきてもできないなら、あなたには解決不可能なので外注にでもだしてください。
これまでかけて解決できてない時間を考えるとおそらく安価に済むのでは。

よく何が間違っているか、何が悪いかを質問されていますが、あなたの場合は根本的に赤の他人にタダで解決してもらおうと言うのが間違っています。

回答がついてもそれを理解していないし理解しようとしている気配もない
思い込みでアドバイスに耳を傾けないし
お金払ってやりたいこと伝えて全部他人にやってもらうしかありません。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/10/10 10:50

    一連の質問群を見て、お察しいたしました。。

    キャンセル

  • 2018/10/10 10:56

    苦言は一言二言どころじゃないですけどね。
    すべてスルーされてますけど。
    どうせまともな方向に向かわず浪費するだけになるので「相手しない」のが得策かと思っています。

    キャンセル

  • 2018/10/10 11:38

    それは違います、皆様のおかげで、一つ一つ問題を解決してやっとここまで辿り着きました。

    キャンセル

  • 2018/10/10 11:41

    解決していてなんでこの質問がでるんですか?
    質問内容も毎回同じような指摘されてるじゃないですか。
    情報提供不足、要件不明瞭。
    1個終わったらもうそこで切れてます。
    何度も言われています。本当に問題が解決できていたら今回の質問で悩むことはありません。
    いまだのこのような質問がでることが未解決であることを物語っています。

    キャンセル

  • 2018/10/10 12:10

    だから“一つ一つ”問題を解決している、と言っています。

    キャンセル

  • 2018/10/10 12:33

    ひとつひとつ解決? どこが? この質問も結局あなたが前に「解決した」質問から一歩も先に進んでないじゃないの。それどころかまともな情報を出さない、最低限の自助努力すらしようとしていないという点で、前より悪化しています。mts10806さんの言っていることはすべて正しいです。特に「赤の他人にタダで解決してもらおうと言うのが間違っています。」のくだりは正鵠を射ていますね。成果を得たいなら、お金を払いなさい。先生につくか、外注に出すか(これも前に私が言ったことだが)。自分はふんぞり返ったまま、赤の他人にタダですべて与えてもらえるほど世の中甘くありませんよ。

    キャンセル

  • 2018/10/10 12:34

    何を伝えたいのかわかりません。
    前から会話が成り立っていないのにお気づきでしょうか。
    気づかれていてはこうはなってませんね。
    同様の質問に同様の回答がつき続けるのが「何も解決していない」証拠です。
    たぶん質問するだけ時間の無駄です。

    キャンセル

  • 2018/10/10 12:39

    KojiDoiさん
    言っても無駄ですね。
    これまでの数多の回答も全て無駄になっているので、
    回答するのが無駄です。
    自分で解決できないから他人の力を、というのは別に間違っていませんが、
    他人の時間を使うことを選んだ以上は必要な情報を出さなければいけませんし、
    必ずそれで解決するように自分でもっていかなければなりません。
    同じような質問、「他方が解決していれば起きえない問題」が起きている時点で
    他人の時間を浪費するだけ浪費してるだけということです。
    これだけ「何も解決していない」という指摘を受け続けているのにその自覚がないのがアウトです。
    そこそこいい年齢でしょうし、そろそろ察しませんかね。

    キャンセル

  • 2018/10/10 12:46

    運営に通報しました。

    キャンセル

  • 2018/10/10 12:47

    質問コーナーには当該スクリプトを載せたいのですが文字制限が10000文字のため、それを載せることができません。それでこのような事態になっている、という部分はあるでしょう。

    キャンセル

  • 2018/10/10 13:09

    当該者以外には同じようなことを繰り返しているように見えるのでしょうが、私が言えることは、一つ一つが確実に解決している、ということです。同じようでも同じでないのが現状です。

    キャンセル

  • 2018/10/10 13:20

    他人の力を借りていてその他人に解決しているように見えないと言われている事態に何も感じないのはおかしいですね。
    もはや考えることを放棄しているとしか思えません。
    ここは思考するエンジニアのQAプラットフォームでありあなた個人のお悩み相談所ではありません。
    毎回同じように低評価、同じような指摘を喰らいつづけてますよね。
    「ベストアンサー」は確かに質問者だけの権利ですが、他人の力と時間を借りた以上は他人にも「解決した」と説得できる納得させられる状態でないとなりません。
    逆の立場になってみてください。
    「あいつ解決したって言ってたけどまた似たような質問してる」となったら誰がまたアドバイスしたいと思いますか?
    さすがに悪目立ちしすぎなので、やり方を変えるか、身を引くかどちらかされた方が良いです。

    キャンセル

  • 2018/10/10 13:21

    今、どういう状態なのかを聞き出して助言することしか、回答者には出来ません。
    スクリプトをまるごと掲載されても困るので、どんなに残念でもエンジニアとしてやるべきことを的確に伝えるしかありません。

    キャンセル

  • 2018/10/10 13:26

    質問から読み取れる情報って僅かですしね。
    書きすぎというくらい書いてもいいと思う。
    面倒だからコードが長いから省略してもいいとか、質問者の判断ですべきではないこと。エラーメッセージを自己判断で要約するのと同じ。
    切り出してでも提示できないなら丸投げでしかないし、エラー出てるなら調べようは幾らでもある。
    世界で初めてその人がぶちあたるような問題なんて熟練者でも滅多にない

    キャンセル

checkベストアンサー

+3

cgiの出力に、Content-typeヘッダーが含まれないせいです
「500 Internal Server Error」がでたとき、2度も同じ失敗
print文で書き加えても現象が変わらないのは、
print文を実行するまでに至らない手前で
そもそもPerlプログラムとして動作しようにも重大なミスがあって1行も動作できていないのだと推察されます。

それと、cgiとして動かす前にPerlプログラムとして動くのかどうか怪しいため、
ドキュメントのperlrunを読んでコマンドラインオプションを確認して-wスイッチを試したり、
perldebugの内容を理解してデバッガを駆使することが先です。最優先です!
よその環境で動作確認済だとしても、運用環境で動く保証にならないため、
サーバー実機でもテストは必要です。

perlrunやperldebugの日本語訳も出回ってますので
理解が深まることを期待しております。

Perlプログラムとして問題なく動作することが確認できてから、
cgiとして設置してみます。

Windowsで動作してCentOSサーバー上で動作しない
いくつか可能性を考えると、

Shebang (Unix) - Wikipedia
cgiとして動かすスクリプトの一行目に、Perl実行本体へのフルパスを記述するのを忘れている。とか。

改行コードがLFになっていない。とか。

日本語を含むスクリプトの場合、日本語がUTF-8N(いわゆるBOMなしUTF-8)になっていない。とか。

他にもありそうな気もします。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/10/10 08:15

    print "Content-type:text/html\n\n";を書き加えました。しかしInternal server error はかわりません。ついでにerror_logにエラーが書き込まれなくなりました。

    キャンセル

  • 2018/10/10 09:43

    書き加える位置が適切ではない恐れがあります。cgiの最初の最初であることを願います。

    キャンセル

  • 2018/10/10 10:09

    HTML著述の前の最初です。

    キャンセル

  • 2018/10/10 11:01

    時間が経って前やった回の分のerror_logが表示されていました。
    今回のerror_logは [Wed Oct 10 10:47:40.102118 2018] [cgi:error] [pid 26893] [client 2400:4050:a1:6200:d253:49ff:fe36:e025:51896] End of script output before headers: 67b32.cgi, referer: http://trm7.mydns.jp/cgi-bin/60a11.cgi でした。これらは以上の修正をしたにも関わらずです。

    キャンセル

  • この投稿は削除されました

  • この投稿は削除されました

  • 2018/10/10 11:25

    上の文章はすみません。勝手に重複掲載され、それの削除を実行しようとしたらなかなか実行できず、戻ってきたら、上の重複文章全てが消えていて、もう一度同じ内容の文章を入力したら、前の重複文章が復活していて、3つの同じような文章の二番目と三番目を削除依頼して削除された、ということになっているのですが、以前削除されていない、というのが現状です。ご迷惑をおかけしてすいませんでした。

    キャンセル

  • 2018/10/10 11:39 編集

    teratailの画面は(いわゆる)スーパーリロードしたほうが良いです。
    編集したファイルを適切に当該ディレクトリ上にアップロードしてあるのでしょうか。
    あるいは直接編集でしょうか。
    error_logをすぐ確認したい場合は、CentOSであればhttpdサービスを再起動するようにすれば確実に書き出されて保存されるので、わかりやすいです。
    それと、なんとなく不安を感じるので、httpd.confからcgiに関わる情報も、質問文中に書き加えてください。(コメント欄だと見通し悪いので。)
    [Apache Tutorial: CGI による動的コンテンツ - Apache HTTP サーバ バージョン 2.4](https://httpd.apache.org/docs/2.4/howto/cgi.html)
    で示されるモジュール、ディレクティブの情報を知りたいです。
    あ、まずはPerlプログラムとして完全に動くかどうかの確認を優先してください。

    キャンセル

  • 2018/10/10 12:35

    相殺+

    キャンセル

  • 2018/10/10 12:48

    https://teratail.com/questions/148520 の質問の部分に、httpd.confの情報があります。

    キャンセル

  • 2018/10/10 12:51

    もう一度書きます、perlrunやperldebugを理解してデバッグしてください。
    当初の少なすぎる情報(&過去の質問を全然見ていないor忘れた)ことから、CentOS上での環境構築を疑っていましたが、
    やり取りの中で、そもそもPerlプログラムとして動いていないとわかったので、
    デバッグして完全に動く状態にしてから
    cgiとして配置するべきです。

    キャンセル

  • 2018/10/10 12:54

    デバッガーを使った動作確認は、他人が肩代わりできることではないため、
    質問者さんががんばって理解して進める必要があります。

    キャンセル

  • 2018/10/10 13:03

    でもWINDOWSでは文字化けなどの問題はありましたが、一応スクリプトは最後まで作動しました。今では文字化けの問題も解決できました。

    キャンセル

  • 2018/10/10 13:11 編集

    CentOS上で動かしたいんでしょ?
    telnet接続などしている状態でコンソールからPerlデバッガーを使って動作確認するべきです。
    Windows上で動作するという事実が、CentOS上で動作することの保証にはなりません。

    キャンセル

  • 2018/10/10 13:27

    スクリプトの改行コードがLFになっていないとか、
    日本語などを含むのであればUTF-8になっていないとか、
    案外そういうところかもしれませんけどね。
    だから、Windowsで動いてもCentOSで動く保証にならない。
    例えるなら、ローカル環境でのテストは「パンツを穿きました」くらいの参考程度に。
    実稼働環境で動かないのは、例えるなら「お前服着てないじゃん」って感じです。

    キャンセル

  • 2018/10/10 14:27

    色々情報ありがとうございます。色々やってみます。

    それともう一つなんですけど、同じCGIをやっているのですが一つは、
    [Wed Oct 10 11:50:28.838525 2018] [cgi:error] [pid 26891] [client 2400:4050:a1:6200:d253:49ff:fe36:e025:52677] End of script output before headers: 67b32.cgi, referer: http://trm7.mydns.jp/cgi-bin/60a11.cgi
    [Wed Oct 10 13:50:19.877041 2018] [suexec:notice] [pid 1378] AH01232: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
    [Wed Oct 10 13:50:22.357332 2018] [auth_digest:notice] [pid 1378] AH01757: generating secret for digest authentication ...
    [Wed Oct 10 13:50:22.358241 2018] [lbmethod_heartbeat:notice] [pid 1378] AH02282: No slotmem from mod_heartmonitor
    [Wed Oct 10 13:50:22.368535 2018] [mpm_prefork:notice] [pid 1378] AH00163: Apache/2.4.6 (CentOS) mod_auth_kerb/5.4 mod_nss/2.4.6 NSS/3.15.4 Basic ECC mod_wsgi/3.4 Python/2.7.5 configured -- resuming normal operations
    [Wed Oct 10 13:50:22.368581 2018] [core:notice] [pid 1378] AH00094: Command line: '/usr/sbin/httpd -D FOREGROUND'
    [Wed Oct 10 13:51:42.994308 2018] [cgi:error] [pid 2621] [client 2400:4050:a1:6200:d253:49ff:fe36:e025:44197] End of script output before headers: 67b32.cgi, referer: http://trm7.mydns.jp/cgi-bin/60a11.cgi
    [Wed Oct 10 13:51:42.997893 2018] [cgi:error] [pid 2624] [client 2400:4050:a1:6200:d253:49ff:fe36:e025:44196] End of script output before headers: 67b32.cgi, referer: http://trm7.mydns.jp/cgi-bin/60a11.cgi
    [Wed Oct 10 13:51:42.999216 2018] [cgi:error] [pid 2622] [client 2400:4050:a1:6200:d253:49ff:fe36:e025:44187] End of script output before headers: 67b32.cgi, referer: http://trm7.mydns.jp/cgi-bin/60a11.cgi
    [Wed Oct 10 13:51:43.617654 2018] [:error] [pid 2623] SSL Library Error: -12263 SSL received a record that exceeded the maximum permissible length
    [Wed Oct 10 13:51:46.456656 2018] [:error] [pid 3676] SSL Library Error: -12263 SSL received a record that exceeded the maximum permissible length
    というエラーが出て、もう一つは、
    [Wed Oct 10 14:15:43.101241 2018] [cgi:error] [pid 2621] [client 2400:4050:a1:6200:d253:49ff:fe36:e025:44602] AH01215: error :Permission denied at /var/www/cgi-bin/67b32.cgi line 241., referer: http://trm7.mydns.jp/cgi-bin/60a11.cgi
    [Wed Oct 10 14:15:43.114094 2018] [cgi:error] [pid 2621] [client 2400:4050:a1:6200:d253:49ff:fe36:e025:44602] End of script output before headers: 67b32.cgi, referer: http://trm7.mydns.jp/cgi-bin/60a11.cgi
    というエラーが出ました、一体何なんでしょう?

    キャンセル

  • 2018/10/10 14:34

    一つの案件が終わる前に別の案件をねじ込むタイプは嫌われるよ。この手のQ&Aサイトでは。
    けど話が発散してしまうのも良くないから便宜上回答するけども。
    SSL received a record that exceeded the maximum permissible lengthに関しては
    ApacheのSSL設定エラー : ssl_error_rx_record_too_long <http://www.open-force.info/130/show>
    設定ミスっぽいね。
    Permission denied に関しては、Perlスクリプトからアクセスしたファイルがオープンできないってことじゃないかな、
    at /var/www/cgi-bin/67b32.cgi line 241 ってことだから普通は真っ先のそのへんのfopen()的なものをチェックするよね。

    キャンセル

  • 2018/10/10 14:38

    知らないエラーメッセージが出るたびにフリーズしてるんじゃなくて、一旦はネット検索などして手がかりを探ってアクション起こしてほしいものです。

    キャンセル

  • 2018/10/10 15:02

    助言有難うございます!

    キャンセル

  • 2018/10/10 21:56

    〈助言有難うございます!〉では問題が解決したかどうかわからないので、
    何をどうして、今どうなっているか、を報告するのが、質問者の責務です。
    質問の回答に、別な案件を絡めてわかりにくくなってしまっていますので、
    質問文中の最後に、現状どうなっているのかを整理して書き直しても良いです。
    (既存の質問文を消さずに、あくまで追記として。)

    キャンセル

  • 2018/10/12 10:44

    その後、解決できたのでしょうか。
    解決できていなくてもベストアンサーを打って区切っていただけると、
    回答者側が気をもまなくて済みますので、どうかお願いします。
    なんのリアクションもなければ以後類似の質問は完全スルーを決め込ませていただきます。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.32%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • CentOS

    2832questions

    CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

  • Apache

    1917questions

    Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

  • Perl

    464questions

    Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。