- ベストアンサー
NFSでマウントしたディレクトリへのアクセス方法について
- NFS経由ではcgiの実行はできないのか疑問です。
- host1とhost2でNFS経由でディレクトリをマウントしており、host2でcgiの実行を試していますがうまく実行されません。
- 一方、host1で同様の設定をしてcgiを実行したところ成功しました。NFSでマウントしたディレクトリのcgiは実行できないのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
疑うべきはNFSです。 ログから確認すると、nfslockに問題が発生しているかportmapが問題か ・サーバーとクライアントで、nfslockが正常に動作しているかを確認して下さい。 ・デッドロックが発生している可能性があります。NFSとカーネルの設定を見直して下さい デッドロックの発生は、NFSのバージョンが低い、パケットサイズが大きすぎる場合などに 発生する可能性があります。(そのほかにもありますが、可能性が高いのはこの2つ)
その他の回答 (2)
- pakuti
- ベストアンサー率50% (317/631)
Timeout waiting for output from CGI CGIの実行がタイムアウトしているようですね。 ログのレベルを上げて詳細ログを取得してみてください。 NFSの問題の可能性もあります。 NFSで大量転送をしてパケット落ちがしていないかも調べてみては如何でしょう?
- 0909union
- ベストアンサー率39% (325/818)
>とすると、うまくcgiが実行されません。 このような質問する方の場合、大抵エラーがなんと出ているか記載がないですね。エラー内容を見れば大抵検討がつくはずですが? エラーをApacheとOSのログで確認しましょう。それとブラウザ上に出るエラーも重要です。ブラウザ上には、ページがありませんとか、5XX、4XXX系のエラーがでていませんか? ログから判断できるように勉強しましょう。Apacheで特に制限していない限り、実行ファイルがどこにあっても実行できます。 マウントして使う場合、大抵アクセス実行権の問題が大です。Apatchが誰で実行され、その起動ユーザーが、マウント先のファイルが実行ファイルとして認識し、実行権がある場合のみ実行できます。 上記の事は、エラーログなどに記録されているはずです。ログでまず、何が起きているのか確認してください。
補足
エラーログ: [warn] [client 192.168.0.1] Timeout waiting for output from CGI script /www/cgi/sample.cgi [error] [client 192.168.0.1] Premature end of script headers: sample.cgi ブラウザには: 500 Internal Server Error 全く同じcgiファイルをhost1、host2に置いているのに、 Premature end of script headersエラーが出る意味がわかりません。 ちなみに、sample.cgiの権限は、host1、host2ともに、rwxr-xr-xです。 あと、host2上で、httpd.confには <Directory /www/cgi> Options ExecCGI Allow from all </Directory> と記述しています。 設定すべきことはやったはずですが、うまくいきません。
補足
ご回答ありがとうございます。 ログのレベルをwarnからinfoにしましたが、吐き出されるエラー内容は同じでした。 つまり、詳細ログは取得できませんでした。 あと、host2の/var/log/messagesをみると、 kernel: locked: server host1 not responding, time out と書かれていました。NFSサーバーであるhost1が応答しない・・・。 しかし、マウントはかかっています。/www/cgi/sample.cgiは見えていますので。 状況を並べているだけですみません。自分で考えても、心当たりがありません・・・