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

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

新規登録して質問してみよう
ただいま回答率
85.48%
CentOS

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

Perl

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

Apache

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

Q&A

解決済

2回答

2123閲覧

CGIが動きません3

trm

総合スコア117

CentOS

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

Perl

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

Apache

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

1グッド

0クリップ

投稿2018/10/09 20:25

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

error_rog

1[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

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

ng_shockNine👍を押しています

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/10/09 22:47

「End of script output before headers」でネット検索すれば手掛かりが見つかりそうなものですが。調べましたか?
trm

2018/10/09 22:53

調べました。
退会済みユーザー

退会済みユーザー

2018/10/10 00:41

調べてもアクションがないなら、調べていないのと同じです。どこそこに掲載されている、こういう情報を頼りに、こういうことをしてみましたが、結果こうなっています、くらい質問文中に補うくらいの上手な情報のアウトプットがないから、回答者側として苦言の一つも二つも言いたくなります。
退会済みユーザー

退会済みユーザー

2018/10/10 01:49

そもそも、Perlで書いているということであれば、コンソール上で直接実行した際は問題なく動作しているのですね?
trm

2018/10/10 01:51

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

2018/10/10 01:55

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

退会済みユーザー

2018/10/10 02:40

cgiとして動かす前に、まずPerlプログラムとしての動作確認を担保するのが大前提ですよ。
trm

2018/10/10 03:08

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

2018/10/10 03:09

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

回答2

0

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

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

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

投稿2018/10/09 22:57

編集2018/10/09 23:02
m.ts10806

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/10/10 01:50

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

2018/10/10 01:56

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

2018/10/10 02:38

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

2018/10/10 02:41

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

2018/10/10 03:10

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

2018/10/10 03:33

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

2018/10/10 03:34

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

2018/10/10 03:39

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

2018/10/10 03:46

運営に通報しました。
trm

2018/10/10 03:47

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

2018/10/10 04:09

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

2018/10/10 04:20

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

退会済みユーザー

2018/10/10 04:21

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

2018/10/10 04:26

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

0

ベストアンサー

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](https://en.wikipedia.org/wiki/Shebang_(Unix%29)
cgiとして動かすスクリプトの一行目に、Perl実行本体へのフルパスを記述するのを忘れている。とか。

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

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

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

投稿2018/10/09 22:51

編集2018/10/11 00:45
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

trm

2018/10/09 23:15

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

退会済みユーザー

2018/10/10 00:43

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

2018/10/10 01:09

HTML著述の前の最初です。
trm

2018/10/10 02: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 でした。これらは以上の修正をしたにも関わらずです。
trm

2018/10/10 02:25

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

退会済みユーザー

2018/10/10 02:54 編集

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 03:51

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

退会済みユーザー

2018/10/10 03:54

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

2018/10/10 04:03

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

退会済みユーザー

2018/10/10 04:12 編集

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

退会済みユーザー

2018/10/10 04:27

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

2018/10/10 05: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 05: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 05:38

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

2018/10/10 06:02

助言有難うございます!
退会済みユーザー

退会済みユーザー

2018/10/10 12:56

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

退会済みユーザー

2018/10/12 01:44

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問