
No.2ベストアンサー
- 回答日時:
→
http://oshiete.goo.ne.jp/qa/7030066.html こちらのつづきでしょうか。それならば、CRにするのは解決にはなりません。
おそらく、最近の事情を知らずに「Macではテキストの改行はCR」だと思っているのでしょう。
たしかにOS9まではCRを使っていましたが、OSXではUnixがベースになっており、改行もUnixと同じLFを使っています。
Web共有で使われれうApacheも、CGIを実行するのに使うperlも、LFを改行とみなします。
実際、手許で実験したところ、
CRLF,CR→Internal Error 500
LF → 「ちわ!世界。」と表示
でした。
原因は他にも考えられます。
> perl -c /Library/Webserver/CGI-Executables/test.cgi
文法が正しくてもプログラムとして間違っている、ということはよくあることです。
-cをはずして実行したら、ちゃんとターミナル上に表示されるでしょうか?
CGIでは、その実行ファイルを単体で実行しようとします。perlを探すのは、シェルの役目です。つまり、シェルからコマンドとして実行できる必要があります。ターミナルで
/Library/Webserver/CGI-Executables/test.cgi
とだけ入力したらどうなるでしょうか?
No.1
- 回答日時:
テキストエディット.appには無いようです。
CRに対応したソフト(mi等)を使うのが確実だと思います。
ところで、なぜCRなのでしょう?
この回答への補足
回答ありがとうございます。
長文になりますが、ご指導よろしくお願いいたします。
なぜCRかと申しますと、下記のような質問をしたところ、
返答が、
「エラーの内容はhttpのレスポンスヘッダより前に何かが出力されてしまったため発生しています。
大抵は先頭行の改行コードが問題を引き起こしていますので、環境がMACなら改行コードをCRLFやLFではなく、CRだけにしてください。」
だった為です。
質問内容
CGI プログラムを起動させると、
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.・・・・・
となってしまい、CGIがブラウザに表示されません。
どなたか解決法をご存知の方、教えてください。
(使用PCは、MacOSX(10.6.8)です。)
行った手順
1. Apacheの動作確認
[Machintosh HD]→[アプリケーション]→[システム環境設定] → 共有・アイコン → 「Web 共有」にチェックを入れる。
2. test.cgiを設置
設置場所
[Machintosh HD]→[ライブラリ]→[WebServer] → 「CGI-Executables」にtest.cgiを設置
test.cgiは下記
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "<HTML>\n";
print "<HEAD><TITLE>CGI TEST</TITLE></HEAD>\n";
print "<BODY>ちわ!世界。</BODY>\n";
print "</HTML>\n";
__END__
3.ターミナルでCGIプログラムに実行権をつける
chmod 755 /Library/Webserver/CGI-Executables/test.cgi
4.ブラウザに「http://localhost/cgi-bin/test.cgi」を入力
最初に表示した「Internal Server Error」になってしまう。
ちなみに・・・
1. ファイルに実行権限が付いているか確認したところ、下記のようになりました。
ls -la /Library/WebServer/CGI-Executables/test.cgi
-rwxr-xr-x@ 1 taka staff 188
2. Syntaxを確認したところ、下記のようになりました。
perl -c /Library/Webserver/CGI-Executables/test.cgi
/Library/Webserver/CGI-Executables/test.cgi syntax OK
3. ターミナルにて、which perlを確認したところ、下記のようにまりました。
/usr/bin/perl
4. tail -f /private/var/log/apache2/error_logにてApacheのエラーログを確認をしたところ、下記のようになりました。
[Thu Sep 22 22:31:17 2011] [error] [client 127.0.0.1] (8)Exec format error: exec of '/Library/WebServer/CGI-Executables/test.cgi' failed
[Thu Sep 22 22:31:17 2011] [error] [client 127.0.0.1] Premature end of script headers: test.cgi
エラーログの見方、解決法もわからない初心者です。
どなたか解決法をご存知のかた、教えてください。
どうぞよろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel VBA メール作成について ...
-
Rstudioによるテキストマイニン...
-
CGIを勉強しています。¥n(改...
-
表(<table>)の直前が、改行さ...
-
MACの改行コード変更について教...
-
CGIが改造できない。
-
メモ帳での改行
-
COBOLのCOMP形式について
-
UTF-8で5~6バイトになる文字コ...
-
ピクセル,dpiから容量(バイト...
-
10Mバイトて文字数に すると何...
-
Excel 1セル当りの文字数が2...
-
Javaで日本語1文字のバイト数
-
エクセルシート名の制限を変更...
-
.netで、ibm漢字で書かれたテキ...
-
SQLで1バイト、2バイト混在...
-
char str[256]の256の意味は?
-
DataGridViewの特定列に入力さ...
-
VB6.0でMSChartをタイマーを使...
-
stable diffusionのエラー
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBA メール作成について ...
-
Rstudioによるテキストマイニン...
-
CGIを勉強しています。¥n(改...
-
Line Inputにて改行があっても...
-
ホームページビルダーで行間を...
-
文字化け
-
入力した内容に余計な空行が入...
-
datの改行
-
<wbr>を強制的に入れるには??
-
perlで、[ \\r\\n , \\n ]の意...
-
改行コードがそのまま表示され...
-
連想するもの教えてください
-
改行文字保存時のゴミ
-
HTMLで開いたsrcの改行コードを...
-
number 改行が追加できない
-
MACの改行コード変更について教...
-
エクセルで「改行コード」を「...
-
TEXTAREAで改行するとついてく...
-
ファイルのアップロードについて
-
テキストボックスに入力された...
おすすめ情報