悩まされ続けたエラー
一ヶ月ほど前に、どうしても解決できなくて一晩明かしたエラーがありました。
それはApache2でCGIを動かそうとすると
「Internal Server Error:500」
になるというもの。
で、コレだけじゃ原因はわからないので、Apacheのログを見ると
「Premature end of script headers: test.cgi」
みたいなエラーが出ています。
これを検索かけると、いくつか原因と「コレで解決した」という情報が出てきます。
1.ファイル転送モードの間違い
FTPソフトなどでBinaryモードではなくASCIIモードで送ると解決
2.FTPサーバ側がASCIIモードに対応していない
vsftpを使っている場合はvsftpd.confに以下を設定で解決
ascii_upload_enable=YES
ascii_download_enable=YES
3.文字コードが間違い
EUCにすると解決
4.改行コードの違い
WindowsではCR+LFですが、UNIXではLFなので改行コードを修正するか
#! /usr/bin/perl —
~~
とハイフンを2つ入れることで解決
5.perlのパスが違っている。
正しく設定しましょう。
6.Apache2をやめる
Apache1.3をインストールする。
とこんな感じです。
しかし..「Apache1.3を入れる」以外は全部やってみましたが、やっぱり動きませんでした。
テスト等でいろいろ弄っていたのでサーバが壊れたのかと思っていたのと、
動かすことが最優先だったので、とりあえずサーバを再インストールすることになりました。
サーバを入れなおしてから、特に連絡がなかったため、てっきり動いているものかと思いましたが、今日連絡があって「また動かない...」ということ。
早速調査を開始。
とりあえず上記の情報がさらっとでてきて、試してみるもやっぱりNG。
その後、見つけたページ
404 Not Found
suexec サポートプログラムは バーチャルホストやユーザのホームディレクトリの場所に依って CGI プログラムを違うユーザ権限の下で走らせることを可能にします。 Suexec の権限のチェックは非常に厳しく、それを満たさない場合は CGI プログラムが Premature end of script headers エラーで 実行されません。
とありました。
SUEXECでCGIが動いていることは確認していたのでSUEXECのログを確認
#Apacheのログと同じところ /var/log/httpd/ にありました。
そこには...
「directory is writable by others: …」
とありました。
?
ディレクトリが書き込み可能だとNG?
そこで思い浮かんだのが上記ページの”Suexec の権限のチェックは非常に厳しく…”という部分。
404 Not Found
こちらに、
16.対象となる CGI/SSI プログラムファイルが他アカウントから 書き込めるようになっていないか?
所有者以外には CGI/SSI プログラムを変更する権限は与えられません。
とありました。
とりあえず、CGIが格納されているディレクトリを見ると、確かにOtherに書き込み権限が与えられている。ログファイル追加するため書き込み権限がついているようです。
これを外して、対象のCGIもchmod 700で設定したところ...
キタワァ━━━━━━(n‘∀‘)η━━━━━━ !!!!!
って感じでバッチリ動きました。
しかし…SUEXECで動作していることは、一昔前の人間にとっては予想もしないところで引っかかりそう…
suexec を完全に理解していない限り、使うべきではありません。
とか
suEXEC を Apache のデフォルトインストールには含めないことが Apache グループで決定されています。これは、suEXEC の設定には管理者の詳細にわたる慎重な注意が必要だからです。
なんて記載されています。
まぁ「使うことにメリットはあるが、十分理解して使ってね」ってことなのでしょう。
まぁひとまず動作したのでOKですが、ホスティングされたレンタルサーバなので、SUEXECが適用されているかは一言連絡をもらいたかった..という感じです。
これって結構ひっかかる人いると思うのですが、どうなんでしょうかね?
まぁ、今回のサーバはサポート窓口が顧客に対してキレるようなDQN業者なので、コレを言うとまた沈静化した問題が燃え上がってしまうので、今回は言わないようにしよう(笑
--CopyRights: https://mstkwb.jp/2005/10/08/6896
しのかつ
19年 ago世の中DQNが多すぎて疲れませんか?(笑)
件の業者に関してはとりあえずν速あたりにスレ建てるといいんじゃないかと思います
mstkwb
19年 agoまったくです(笑)
業者自体は普通なのかもしれませんが、たまたま当たったサポートがNGだった感じです。脊髄反射で返信してくるので質問してもちゃんとした答えが返ってきません(笑