• ベストアンサー
  • 暇なときにでも

すみません、二度目です。fedora core3でcgiが動きません。

すみません、以前も質問したのですが、残念ながら解決に至らなかったので ここでまた質問させていただきました。お詳しい方のアドバイスをよろしくお願い致します。 cgi-binの中にauctというディレクトリを入れその中にあるindex.cgiにアクセスしたいのですが http://localhost/cgi-bin/auct/index.cgi とアクセスすると、500 internal server error となってしまいます。 httpd.confの設定は scriptalias /cgi-bin/ "/var/www/cgi-bin/"を                     ↓ alias /cgi-bin/ "/var/www/cgi-bin/"と変え(#は外しています)、 <Directory "/var/www/cgi-bin"> のoptionsをnoneからExecCGIにしました。 あと #AddHandler cgi-script .cgi の#は外しました。 scriptaliasをaliasに変えたのはindex.cgiにアクセスすると、同ディレクトリ内にある、start.shtmlというファイルを開くという設定になっているので、それをCGIと認識されないようにするためにしました。 そのほかはデフォルトの状態ですので、documentrootはvar/www/htmlです。 各CGIのperlのパスは#!/usr/bin/perlとしていて 実際そこにperlがあるか確認もしました。 設定した後httpdの再起動もしました。 error log は premature end of script headers: index.cgiと File does not exist: /var/www/html/favicon.ico となっています。 この設定でWindowsのapacheはCGIが動作したのですが、fedora core3ではうまくいかないのは どうしてでしょうか?アドバイスお願いいたします。

共感・応援の気持ちを伝えよう!

  • 回答数9
  • 閲覧数140
  • ありがとう数12

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.9
  • Lean
  • ベストアンサー率72% (435/603)

NO.8 10gate様 >WINDOWSでの+lhacaで解凍し、ffftp1.92のASCIIモードでアップしたものは稼働しました。 FFFTPではASCIIモードで転送する際、改行コードをホスト側に合わせた改行コードに変更してくれるようですね。 そこで改行コードをCR+LF(Windows)からLF(UNIX)にしてくれるのでしょうね。 質問の方がどのFTPクライアントを使用しているのかわかりませんが、Windowsからファイル転送をしていてFFFTP以外のFTPクライアントを使用しているならFFFTPを試してみてはどうでしょうか?

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございました!

関連するQ&A

  • fedora core3でCGIがソースコードで表示されてしまいます。

    document root("var/www/html")でCGIを使うために、httpd.confの設定で#Addhandler cgi-script →Addhandler cgi-script , と書き直し、<Directory"var/www/html">のoption項目にExecCGIと追加しました。 アクセスするときはlocalhost/***.cgiとしています。 cgi fileのperlのパスが#!/usr/bin/perlとなっているのでその場所にちゃんとperlがあるかも確認しました。 .cgiファイルはWindowsXPからASCIIで転送したものです。.httpd.confの設定以外はデフォルトの状態です。 何日間か試行錯誤したのですが、うまくいきません。どうかご助言お願いします。

  • CGIが・・・いったい何が問題でしょうか?

    皆様よろしくお願いいたします。 以下の構成のディレクトリをvar/www/htmlに置き localhost/auct/index.cgiとしてindex.cgiファイルにアクセスしようといたしたのですが、500internal server errorとなり(エラーログ; premature end of script headers; index.cgi)、アクセスできません。 index.cgiにアクセスするとstart.shtmlが開く設定になっています。 なお、簡単なCGIファイルを作りvar/www/htmlで動作させたところ正常に動作いたしました。 自分でもかなり調べたり、聞いたりしたのですが解決に至りませんのでどうかご助力お願いいたします。 ....├ [auct] ...........├ [ pl ] ...................├ [ lib ] ...................├ ap.cgi ...................├ category.cgi ...................├ cgi-lib.pl ...................├ comu.cgi ...................├ config.cgi ...................├ image.pl ...................├ index.html ...................├ jcode.pl ...................├ mail.cgi ...................├ mng.cgi ...................├ show.cgi ...................├ usr.cgi ...................└ wwwis.pl ...........├ auction.cgi ...........├ count_down.cgi ...........├ cron.cgi ...........├ index.cgi ...........├ master.cgi ...........├ search.cgi ...........├ start.shtml ...........└ temp.cgi 全てWindowsからasciiで転送してperlのパスも確認済み。 パーミッションはすべて755。 Windowsのapacheでは正常に動作。 httpd.confの設定; <directory "/var/www/html">のoptionsにExecCGIを追加。#addhandler cgi-script .cgi のコメント化。そのほかはデフォルト。

    • 締切済み
    • CGI
  • Fedora Core1サーバーでCGIが利用できません

    Fedora Core1でwebサーバーを立てたのですが、実行しようとすると「500 Internal Server Error」となってCGIが動きません。 perlへのパスやパーミッションの設定も見直しましたが、どこの設定が間違っているか分からないので、設定方法を教えてもらえないでしょうか? 現在の環境は ホスト名:saba.dyndns.org perlのパス:/usr/local/bin/perl CGIを仕えるようにしたいユーザー:guest CGIを設置するディレクトリ:/home/guest/cgi-bin/ Apacheのバージョンは2.0.49 となっています。 また以下はhttpd.confの抜粋です。 Listen *:80 #ScriptAlias /cgi-bin/ "/var/www/html/" ScriptAlias /cgi-bin/ "/home/guest/public_html/cgi-bin/" AddHandler cgi-script .cgi .pl <Directory "/home/guest/public_html/"> Options ExecCGI AllowOverride None Allow from all Order allow,deny </Directory> <Directory /home/*/public_html> AllowOverride FileInfo AuthConfig Limit Options Includes ExecCGI FollowSymLinks <Limit GET POST OPTIONS> Order allow,deny Allow from all </Limit> <LimitExcept GET POST OPTIONS> Order deny,allow Deny from all </LimitExcept> </Directory> 長文失礼しました。

その他の回答 (8)

  • 回答No.8
  • 10gate
  • ベストアンサー率42% (50/117)

#1,2,4,6です。 #7様と同じく体験版のうち、search.cgiを試してみました。 zipファイルをFedoraに持っていって、そこで解凍したものはやはり premature end of script headers になりますね。 WINDOWSでの+lhacaで解凍し、ffftp1.92のASCIIモードでアップしたものは稼働しました。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ご回答ありがとうございます! 改行コードの問題だったようです。 このたびはどれだけ助けていただいたか分かりません!Leanさん同様10gateさんの助けなしでは間違いなく解決には至らなかったはずです。 私の勉強不足と力不足のせいで、たくさんのお手間をかけさせてしまいましたことをお詫びするとともに、このたびは本当に本当にありがとうございました!

  • 回答No.7
  • Lean
  • ベストアンサー率72% (435/603)

体験版(auction_pro_try.zip)のほうで確認してみました。 環境  Fedora Core 3(VMware上に新規インストール)  httpd(Apache) httpd.confはデフォルトから「AddHandler cgi-script .cgi」を有効にしただけ。 -------8<-------8<-------8<------8<------ ※auction_pro_try.zipをFC3上に転送 # unzip auction_pro_try.zip # cd auction_pro_try # mv auction_pro /var/www/cgi-bin # cd /var/www/cgi-bin/auction_pro # chmod +x *.cgi この状態で http://localhost/cgi-bin/auction_pro/search.cgi にアクセスすると「premature end of script headers」。 元々のファイルは漢字コード S-JIS、改行コード CR+LFのようなので以下のシェルを作成し改行コードを CR+LF から LF に変換。 # cat NKF.sh TMPFILE=/tmp/NKF.$$ for FILE in `find . -name "*.cgi" -o -name "*.pl"` do echo ${FILE} nkf -S -s -Lu ${FILE} > ${TMPFILE} cp ${TMPFILE} ${FILE} done rm -f ${TMPFILE} # bash ./NKF.sh この状態で http://localhost/cgi-bin/auction_pro/search.cgi にアクセスすると「premature end of script headers」にならず正常に表示されます。 -------8<-------8<-------8<------8<------ No.3で書いたようどこかで改行コードを変換していないなら、改行コードがCR+LFのままになっていてそのせいで「premature end of script headers」になっているような気がするんですが。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ご回答ありがとうございます! 仰るとおりでした!EUCとLFに変換したところ 見事CGIが動作しました。 本当に何十時間悪戦苦闘したか分かりません。 その状況から抜け出すことができたのは、Leanさん のおかげです。 本当になんとお礼の言葉を言っていいか分かりません。 まだ、文字化けしてたり、グローバルからアクセスしたら、真っ白な画面が表示されてしまってたりと、 多々問題はありますが、とにかく今は感謝の気持ちで一杯です! 残念ながら私には20ポイントしか、お渡しする権利はありませんが、本当にそんなものとは比較にならないほど感謝の気持ちです。本当にありがとうございました。

  • 回答No.6
  • 10gate
  • ベストアンサー率42% (50/117)

#1,2,4です。 ----------------- また、付け加えさせていただきますが、httpd.confの設定が <directory "/var/www/html">のoptionsにExecCGIを追加。#addhandler cgi-script .cgi のコメント化。そのほかはデフォルトという状態で、簡単なCGIファイルを作りvar/www/htmlで動作させたところ正常に動作いたしました。 ----------------- > #addhandler cgi-script .cgi のコメント化 はコメント外しですよね? それで、この状態で次のステップに進んではいかがでしょう。 /home/www/cgi-bin を/cgi-bin/にaliasしますよね。 この際に、ScriptAliasのところを修正するのではなく、Alias文を新規につくりましょう。 場所は Alias /icons/ "/opt/apache/icons/" があるあたりでいいと思います。 <IfModule mod_alias.c>の後ですね。 さらに <Directory "/home/www/cgi-bin"> にExecCGIを追加。 これでapacheをリスタート、test.cgiを/home/www/cgi-binにおいて、稼働確認。 うまく行くはずですから、今度はindex.cgiを試してはいかがでしょうか。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ご回答ありがとうございます。  ご指示いただいた設定をしてみました、が、index.cgiの方は動きません・・・。test.cgiは動きますので、やはりscriptの問題なんでしょうか? よろしくお願いいたします。

  • 回答No.5
  • Lean
  • ベストアンサー率72% (435/603)

動作させようとしているCGIはどこかで公開されているものなのでしょうか? もし、そうならば、ちょっとこちらの環境で試してみたいので出来ればURLを、URLの提示が不可能ならその場所が特定出来そうな情報を頂けませんでしょうか?

共感・感謝の気持ちを伝えよう!

質問者からのお礼

是非お願いいたします!! フリーのCGIではないので私の持っている正式版ではなく体験版の方になりますが、よろしいでしょうか?私は自宅サーバーでやっているのですが体験版の方も同じエラーが出ます。よろしくお願いいたします。 http://www.perldeco.net/trial/auction_pro.shtml

  • 回答No.4
  • 10gate
  • ベストアンサー率42% (50/117)

#1,2です。 2つ確認なのですが、test.cgiは ----------------------- #!/usr/bin/perl print "Content-type: text/html\n\n" ; print "hello\n<br>" ; ----------------------- みたいな感じでしょうか。 あとvar/www/htmlですが、 /var/www/html の事ですよね? ----------------------- 次に #addhandler cgi-script .cgi をコメントにして <directory "var/www/html">のoptinsにExecCGIを追加してlocalhost/test.cgiとアクセスしますと、こちらも500internal server errorとなり、 エラーログは no such file or directory :execof 'var/www/html/test.cgi' failed と premature end of script headers: test.cgi となりました。 ----------------------- これについては、 #addhandler cgi-script .cgi の#があるとダメだと思います。コメントを外して再度試して下さい。 私もFC1で似たような環境を作成して試しまたが、test.cgiまでは問題なく稼働します。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

お忙しい中たびたびのご回答感謝いたします! 作成しました.cgiは #!/usr/bin/perl print "content-type: text/html\n\n"; print "<html>\n"; print "<body>\n"; print "これが見えたら大丈夫\n"; print "</body>\n"; print "</html>\n"; というものです。 あと、すみません仰るとおりです、var/www/html/ではなく, /var/www/html/でした。 加えてこちらも私の書き間違いなのですが、#addhandler cgi-script .cgi をコメントにしたではなく、コメントをはずしたの間違いでした。 こちらのミスで無駄な手間をおかけしてしまいましてすみませんでした。 現在とりあえずtest.cgiが動いたということでどうも私が動かそうとしているscriptがあやしいというアドバイスをいただいたので、そちらのほうからpremature end of script headersについての解決法をgoogleで調べているのですが、なかなかうまくいきません。 また何かご指示いただけることがございましたらよろしくお願いします。

  • 回答No.3
  • Lean
  • ベストアンサー率72% (435/603)

>scriptalias /cgi-bin/ "/var/www/cgi-bin/"を >       ↓ >alias /cgi-bin/ "/var/www/cgi-bin/"と変え(#は外しています)、 ここは変更しなくともいいのでは? それに、「scriptalias /cgi-bin/ "/var/www/cgi-bin/"」という設定をしてあるのなら、 ><Directory "/var/www/cgi-bin"> >のoptionsをnoneからExecCGIにしました。 という事をする必要はありません。 >premature end of script headers: index.cgi スクリプト側の問題ですね。 ところで、その転送したファイルの改行はCR(\r)+LF(\n)ですか?それともLF(\n)ですか? もし、改行がCR(\r)+LF(\n)なら、LF(\n)に変えてから実行してみたらどうなりますか? viでスクリプトファイルを開いた場合、以下のような場合、改行はCR+LFです。 -------8<-------8<-------8<------- #!/usr/bin/perl^M ←この「^M(CR)」 -------8<-------8<-------8<------- もしくは、以下の様なコマンドイメージを実行して「\r\n」があるなら改行がCR+LFになってます。 -------8<-------8<-------8<------- # head -1 index.cgi | od -cx 0000000 # ! / u s r / b i n / p e r l \r ←この「\r(CR)」 2123 752f 7273 622f 6e69 702f 7265 0d6c 0000020 \n \0 000a 0000021 -------8<-------8<-------8<------- もしそうならば、nkfコマンドがおそらくインストールされているはずなので、それで改行をCR+LFからLFに変更してください。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ご回答ありがとうございます! ご指示いただいたとおり改行コードをcgiのソースを開いて確認してみましたが、\nというものだけで、\rというものは見当たりませんでした。 また、付け加えさせていただきますが、httpd.confの設定が <directory "/var/www/html">のoptionsにExecCGIを追加。#addhandler cgi-script .cgi のコメント化。そのほかはデフォルトという状態で、簡単なCGIファイルを作りvar/www/htmlで動作させたところ正常に動作いたしました。 同じ環境でindex.cgiのほうはエラーが出るということはご指摘の通りスクリプト側の問題と見てよろしいのでしょうか?ご指導お願いいたします。

  • 回答No.2
  • 10gate
  • ベストアンサー率42% (50/117)

#1です。 くどくてすみません、他のplファイルとかもasciiモードで転送されているか、ご確認下さい。 次に、切り分けのために、index.cgiとは別にtest.cgiとかをアップして、print "hello,world\n"とかを表示させて見てはいかがでしょう。 これが表示できれば、apacheのExecCGIは問題ない事がわかりますよね。 それが問題ないとして、index.cgiから呼ばれるstart.shtmlのかわりに、test.htmlとかにして、呼び出しのところが問題ないか、確認。 それがOKだとすると、index.cgiまではOKだという事がわかると思います。 となるとstart.shtmlが怪しくて、もしそれがSSIでしたら、エラーはそこで出ている可能性が高くなります。 ディレクトリのOptionsにIncludesがないとか、apacheの以下のパースがコメントアウトされたままとか・・。 AddType text/html .shtml AddHandler server-parsed .shtml

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ご回答ありがとうございます。 転送方法ですが、plファイルなどに限らずバイナリもasciiで転送してみたりしたのですがだめでした。 あと、ご指示いただいた通りtest.cgiの動作テストしたところ、動作いたしませんでした。 詳細はまずデフォルトの状態でtest.cgiをcgi-binにおいてアクセスした結果 500internal server error となりエラーログは premature end of script headers: test.cgi となりました。 次に #addhandler cgi-script .cgi をコメントにして <directory "var/www/html">のoptinsにExecCGIを追加してlocalhost/test.cgiとアクセスしますと、こちらも500internal server errorとなり、 エラーログは no such file or directory :execof 'var/www/html/test.cgi' failed と premature end of script headers: test.cgi となりました。 最後に最初の質問でしました、scriptaliasをaliasに変えるのをtest.cgiでやってみましたところ、500internal server errorとなり、エラーログは no such file or directory :execof 'var/www/html/test.cgi' failed と premature end of script headers: test.cgi でした。 これはExecCGIが問題あるということなのでしょうか。 正直かなり調べたのですが、まったく事態が好転いたしません。いったい何が問題なのでしょうか?サーバー機に問題がある場合なども考えられるのでしょうか?どうかご助力お願いいたします。

  • 回答No.1
  • 10gate
  • ベストアンサー率42% (50/117)

こんにちは。 > File does not exist: /var/www/html/favicon.ico こっちは動作しない事とは関係ないですね。 > premature end of script headers: index.cgi これはいくつか理由が考えられますね。 CGIをFedoraサーバにFTPするときの転送モードはasciiになっているでしょうか。 ascii転送されているのでしたら、CGIの最初のprint文がこれになっていないとか。 print "Content-type: text/html\n\n" ;

共感・感謝の気持ちを伝えよう!

質問者からのお礼

回答ありがとうございます! 説明不足ですみませんでした。 転送モードはasciiでいたしました。 あと確認しましたところ、最初のprint文は print "Content-type: text/html\n\n" ; となっていました。 あと補足をさせていただくと、動作に 関係があると思われるcgi-binのファイルとディレクトリの構成は. [cgi-bin] ....├ [auct] ...........├ [ pl ] --- 705,755 ...................├ [ lib ] --- 755 ...................├ ap.cgi --- 644 ...................├ category.cgi --- 644 ...................├ cgi-lib.pl --- 644 ...................├ comu.cgi --- 644 ...................├ config.cgi --- 644 ...................├ image.pl --- 644 ...................├ index.html --- 644 ...................├ jcode.pl --- 644 ...................├ mail.cgi --- 644 ...................├ mng.cgi --- 644 ...................├ show.cgi --- 644 ...................├ usr.cgi --- 644 ...................└ wwwis.pl --- 644 ...........├ auction.cgi --- 705,755 ...........├ count_down.cgi --- 705,755 ...........├ cron.cgi --- 705,755 ...........├ index.cgi --- 705.755 ...........├ master.cgi --- 705,755 ...........├ search.cgi --- 705,755 ...........├ start.shtml --- 644 ...........└ temp.cgi --- 705,755 となっています([ ]はディレクトリです。横にある数字はプログラムした方推奨のパーミッションです。ちなみにわたしはとりあえず、すべて755にしています。) このauctディレクトリにあるindex.cgiにアクセスしたらstart.shtmlが開くという設定なのですが、なにか問題があるでしょうか。よろしくお願いいたします。

関連するQ&A

  • cgi-binディレクトリ内のhtmlを有効にしたい

    度々お騒がせしております。 本日は、Apacheの設定について 伺いたく投稿させていただきました。 apacheの設定を終え、 一通り動作するようにできたのですが、 cgi-binディレクトリに置いたhtmlや jpg,gifといったcgi以外のファイルが 表示されません。 httpd.confによる cgi-binディレクトリの設定でどうにかなるものと思い、 色々調べてみたのですが、 いまいち設定方法がわかりません。 以下、私の環境です。 Apacche 1.3.20 htmlディレクトリ /var/www/html/ (775) cgi-binディレクトリ /var/www/html/cgi-bin/ (775) 現在のcgi-binディレクトリの設定 ScriptAlias /cgi-bin/ "/var/www/html/cgi-bin/" <Directory "/var/www/cgi-bin"> AllowOverride None Options ExecCGI Order allow,deny Allow from all </Directory> 以上、どうかよろしくお願いいたします。

  • CGIが使えないのはなぜ?

    こんにちは。 現在Redhat8を使用して、サーバーを作っています。apacheを起動してサイトが表示できるまではOKだったのですが、CGIを使う段階でつまづいています。 httpd.confは様々なサイトを見てそのとおりに編集したのですが、いざCGIを起動するとServerError!となります。Error_logを見ると↓のような妙な文章でした。Permissionなら分かるのですが、、これは何でしょう。 Premature end of script headers: XXX.cgi CGIの先頭のPerl指定は #!/usr/bin/perl にしてあります。何が悪いのか分からず途方にくれています。何かチェックする部分があればどうかご指摘ください。お願いします。パーミッションの設定は完了しており、CGIスクリプト自体も先頭以外はいじっていません。 RedHat8.0 Apache2.0 /home/www/html にHTMLファイル /home/www/cgi-bin にCGIスクリプト ----------------以下関係のありそうなhttpd.confの抜粋 ScriptAlias /cgi-bin/ "/home/www/cgi-bin/" <Directory /home/www/cgi-bin> Options ExecCGI Order allow,deny Allow from all </Directory> AddHandler cgi-script .cgi

  • cgi実行ディレクトリをデフォルト以外に追加設定する方法

    apacheのcgi-bin/のディレクトリはデフォルトだと、 DIR: /usr/local/apache/cgi-bin/ に設定されていると思います。 さらに実行出来るディレクトリを追加してあげる場合 httpd.confのScriptAliasを 手順的に追加するだけで出来るのでしょうか? 例 ScriptAlias /cgi-bin/testdir/ "/home/test/testdir/" <Directory "/home/test/testdir"> Options +ExecCGI </Directory>

  • cgiの設定方法

    はじめまして、自宅でサーバーを立てようとしているのですが、つまずいてしまったので力を貸してください。 環境はRedhat9.0(?)、apache2.054を使用しています。 cgi自体はネットから落としてきた物を手始めとして使用してます。 /var/www/にcgi-binを作成、そこにcgiファイル等を格納しています。 cgi、perlファイルは705 ログファイルは606 ロックファイルは707にパーミッションを設定しています。 httpd.confは ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" AddHandler cgi-script .cgi .perl <Directory "/var/www/cgi-bin"> allowoverride none options execcgi order allow,deny allow from all </directry> 上記のように設定しています。 HPを表示させようとすると 「InternalError」と表示され、先に進みません。 このサイトを検索し、アスキーモードで転送も行って見たのですが。。。 どなたかCGI設定方法をご教授お願いいたします。

  • OSXでcgi

    OSXでperlで作ったcgiを動かしたいと思い色々といじってるのですが全く動きません。 apacheのhttpd.confの設定で AccessFileName .htaccess AddHandler cgi-script .cgi AddHandler cgi-script .pl についてはコメントをはずして使えるようにして Perlのパスも#!/usr/bin/perlとしてsiteフォルダとcgiを置いてるディレクトリに.htaccessを下のように記述して作り AddType application/x-httpd-cgi .cgi AddType application/x-httpd-cgi .cgi/ パーミッション設定をちゃんとしてあげてるのですがブラウザからアクセスするとForBiddenとでてしっかりと設定してるはずのパーミッション設定が間違ってますと言われてしまいます。 OSXでcgiを動かすには他にももっと色々と設定しなければダメなんでしょうか?

    • ベストアンサー
    • Mac
  • apacheのCGI設定について教えてください。

    CGIの勉強のために、古いパソコンに fedora core 4 をインストールしてapache でローカルのテスト用サーバーにしようとしています。 /var/www/html に設置した簡単な perl CGI は動くのですが、同じものをユーザーのホームディレクトリに設置すると、internal server error になってしまいます。 ***** 以下 httpd.confの抜粋です。***** #UserDir disable UserDir public_html <Directory /home/*/public_html> AllowOverride All Options Includes ExecCGI FollowSymLinks SetHandler cgi-script </Directory> AddHandler cgi-script .cgi .pl ************************************** サーバーのエラーログを見ると Premature end of script headers: test.cgi となっています。htmlをprintしているだけのスクリプトで、/var/www/html では動くので、apache の設定の問題かと思っています。 ちょっとカテゴリーが違うかもしれませんが、よろしくお願いします。

    • ベストアンサー
    • Perl
  • ユーザー毎のディレクトリでCGIを設置

    ユーザー毎のディレクトリでCGIを設置可能にしようとしているのですが、うまくいきません。 教えて下さい。 【環境】 Apache/2.0.40 Red Hat Linux 8.0 【httpd.confの設定抜粋】 DocumentRoot "/home/homepage/public_html" <Directory /home/homepage/public_html> Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory> <IfModule mod_userdir.c> UserDir public_html </IfModule> <Directory /home/*/public_html> Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory> #ScriptAlias /cgi-bin/ "/home/homepage/public_html/cgi-bin/" 【.htaccessの設定】 AddHandler cgi-script .cgi Options +ExecCGI 以上のような設定で #!/usr/bin/perl print "Content-type: text/html\n\n"; print "hello"; こんなCGIをつくって実行してみました。 /home/homepage/public_html/cgi-bin/においたものはうまくいくのですが /home/user/public_html/cgi-bin/においたものはエラーになってしまいます。 エラーの内容は↓のとおりです。 Server error! The server encountered an internal error and was unable to complete your request. Error message: Premature end of script headers: hello.cgi If you think this is a server error, please contact the webmaster Error 500 perlのパスは間違ってないし、パーミッションも755にしてあります。 どうすればいいのか分からず困っています。 どこを調べれみればいいのかだけでも教えていただけると助かります。 よろしくお願いします。

  • httpd.conf内ScriprAlias設定に関して

    何時もお世話になります。 現在APACHE2でCGIの設定をしております。 過去の質問などを色々と読んでおりますが、ScriptAliasの設定で判らない部分がございます。 一つのディレクトリ内のcgi-binでは動くのですが、複数のディレクトリで動かそうとすると、ソースが表示されてしまいます。 複数のディレクトリ内でそれぞれCGIを動かす為の設定はどの様にしたら宜しいのでしょうか・・・? 現在 ScriptAlias /cgi-bin/ "usr/local/apache2/cgi-bin/" <Directory "home/hoge1/cgi-bin/" Options +ExecCGI </Directory> <Directory "home/hoge2/cgi-bin/" Options +ExecCGI </Directory> となっております。 それぞれにScriptAliasのパスを書かないとダメ?と思い、 デフォルトを切って ScriptAlias /cgi-bin/ "/home/hoge1/cgi-bin/" ScriptAlias /cgi-bin/ "/home/hoge2/cgi-bin/" 等を付けたり切ったり、何度かパタンを試しましたが巧く行きません。 Aliasの考え方が間違って居るのでしょうか・・・? ご指導の程、お願い申し上げます。

  • apacheでcgi

    AddHandler cgi-script .cgiを有効にして.htaccess の中にOptions +ExecCGIAllを記述してhttpd.confのowOverride Options としてcgiを実行しようとしたら下記エラーになりました。 [Thu Nov 15 11:16:54 2001] [error] (13)許可がありません: exec of /home/jin/WWW/cgi-bin/tslbbs.cgi failed [Thu Nov 15 11:16:54 2001] [error] [client 192.168.0.9] Premature end of script headers: /home/jin/WWW/cgi-bin/tslbbs.cgi それで、 #AddHandler cgi-script .cgi として、 <Directory /home/*/WWW> Options ExecCGI </Directory> にしたら cgiのソースが見えてしまいます。 cgiのPermissionsは755になっております。 ScriptAliasで/cgi-bin/ /home/*/WWW/cgi-bin/を記述してOptions ExecCGIにしてもソースが見えてしまいます。 cgiを実行させるのにはどうすればいいのでしょうか?? (以前Linuxを良くわからないときに(今でも解っていませんが・・)同じような質問をここに挙げてその時は単純な自分の間違いで動かなかったのですが単純なソースのミスでした。それで今度はLinuxをインストールをしなおしたら動かなくなったのです。 http://apachetoday.com/news_story.php3?ltsn=2000-06-05-001-10-NW-LF-SW 等覗いてそれをやっても動かないのです。 多分単純なことなのかもしれませんが行き詰まって困っております。 昨日の質問でユーザーのHTMLが見れないのはURLの指定で最後に'/'をつければ問題なく見れました。今はイントラネットでLinuxを動かしているのですが、実際のインターネットでは最後の/は入れたり入れなかったりでも問題なく見れるのですが、正しくは最後に/を入れるみたいですね。)

  • omniHTTPdでのCGIの利用

    windows用のHTTPdのomniHTTPdを使って、HTTPサーバーを立てようとしています。 htmlを表示することは出来ました。が、CGIがうまくいきません、というか設定でわからない箇所があります。 普通、ISPなどのHPサービスでは、CGIを設定する際に #!/user/local/bin/perl と設定しますよね。でもこれが自宅のマシンだとどう設定して良いのかわかりません。 perl.exeは d:\test\httpd\cgi-bin\perl\ の中に入ってます。 omniHTTPdは c:\HTTPD\ の中に入ってます。 HTTPdにアクセスした時のルートが d:\test\httpd\index.html になってます。 CGIはその下の d:\test\httpd\cgi-bin\ に入れようとしています。 ちょっと説明下手でわかりにくいかもしれませんが、よろしくアドバイスお願いします。