質問: Apatcheでwebサーバーを立ち上げて"/var/www/cgi-bin" デレィクトリに.cgiファイルを置いたのですがInternal server errorによりファイルを実行することができません。 エラーログは以下の通りです。 (2)No such file or directory: exec of ' Premature end of script headers: 追記 エラーが下記に変わりました (8)Exec format error: exec of -httpd.confなど必要な設定は終えています -ディレクトリのパーミションも755にしています おなじ"/var/www/cgi-bin"デレィクトリにおいた別の.cgiファイルは実行できるのですがなにか原因は考えられますでしょうか?
回答: いわゆる「スクリプト」でCGI用のプログラムを書くときは、一番最初の行に次のように書きます。 ``` #! インタプリタ ``` 「インタプリタ」の箇所は、スクリプトを実行するプログラムのフルパスです。「/usr/bin/perl」などですね。 なお、先頭の「#」の前には何も入れてはいけません。たとえば一部のテキストエディタは、作成したテキストを保存するときに文字コードに「ユニコード (UTF-8)」などを指定すると、保存したファイルの一番最初に3バイトの目に見えないゴミデータ (「バイトオーダマーク」と呼ばれますが、名前通りの役目は果たしません) を挿入します。これがあると、スクリプトをインタプリタによって実行できません。