2011-08-10 15 views
2

私は、コンパイルされたバイナリファイルをコンパイルするために私のApache Webサーバーが必要です。私は私のcgi-binディレクトリを設定するために別のチュートリアルで言われたすべてをやったことがありますが、何も助けになりませんでした!設定cgi on apache2

が、私はApacheの設定(サイト-利用可能/デフォルト)に追加した:

ScriptAlias /cgi-bin/ /var/www/cgi-bin/ 
<Directory "/var/www/cgi-bin"> 
    AllowOverride None 
    Options ExecCGI -MultiViews +SymLinksIfOwnerMatch 
    Order allow,deny 
    Allow from all 
    AddHandler cgi-script .cgi 
</Directory> 

私のC++ファイル(/var/www/cgi-bin/test.cgi)単にハローcouts世界!しかし、私は、ブラウザ上でこのファイルを要求したときに、私はエラーが発生します:内部サーバーエラー!

+0

コンソールウィンドウからtest.cgiの出力を投稿できますか? –

+0

また、Apacheエラーログには何が表示されますか? –

+0

コンソールからのtest.cgi出力:Hello World! –

答えて

3

あなたのtest.cgiはヘッダを出力しません。

Content-type: text/plain 

Hello world! 

がある問題である可能性がより多くのものがありますが、「コンテンツタイプ」ヘッダを追加することにより、起動して:それは出力ヘッダのセットと、空白行で区切られたボディ、このような何かすべきテストプログラムの出力に空の行。

+0

コンテンツタイプを追加しましたが、まだ動作していません! –

+0

"ファイルが存在しません"というエラーメッセージで判断すると、他にも問題があります。プログラムをApacheユーザーとして実行するのに効果がありますか? –

1

ありがとうございます!そして、私が答えが遅すぎると申し訳ありません。

ファイルにアクセスしないという問題は、権限を変更することで解決されました。しかし、/var/www/cgi-bin/というcgi-binという名前のフォルダ名は、/usr/lib/cgi-bin/という別名であるというエラーがありました。

ファイルにtest.cgiファイルを置くと、ファイルにアクセスできましたが、まだエラーがHeader Contentで、Apacheに記録されていました。ヘッダーはContent-type: text/htmlにする必要があります。

+0

更新をお寄せいただきありがとうございますが、これは新しい回答ではなく質問の更新編集としてよく書かれています。 – hlovdal

関連する問題