Fedora10でのcgiの設定

Apacheが動くようになって、他のマシンからもHPが見えたので、つぎはCGIを使えるようにした。まず、geditなどでhttpd.confを開きCGIが実行できるようにする。 1.「Options ExcecCGI」  … “Fedora10でのcgiの設定” の続きを読む

Apacheが動くようになって、他のマシンからもHPが見えたので、つぎはCGIを使えるようにした。
まず、geditなどでhttpd.confを開きCGIが実行できるようにする。

1.「Options ExcecCGI」 を追加

2.CGI用のAddhandler を有効化

3.CGIの表示で文字化けがひどい場合は、WindowsからCGIのスクリプトをアップしている場合は、表示言語の指定をスクリプトの指定( META http-equiv=”Content-Type” content=”text/html; charset=Shift_JIS” など)に優先させるには「addDefaultcharset UTF-8」が有効になっていたら無効にしてみる。HPが文字化けする場合もこれを試す。

4.SELinuxの設定 「Allow CGI support」にチェックを入れる。

あとは、Apache(httpd)を再起動。

5.その他、CGI関連。
パールのパスを変えるcgiスクリプトの先頭行には、

#!/usr/bin/perl

と書いている場合は良いが、

#!/usr/local/bin/perl

と書いてある場合は、修正するか、

cgi用にこの記述でperlでcgiが記述できるようシンボリックリンクを張る。

ln -s  /usr/bin/perl   /usr/local/bin/perl

こうすると、どちらでもよくなる。

・CGI実行時にInternal Server Error(インターナルエラー)となる場合の対処法
Linuxでの改行はコード LF のみなので、DOS(Windows)上で作成したcgiスクリプトが動かないことの回避。

#!/usr/bin/perl  ← このあとにCR+LFが入ってエラーとなる。なので、

#!/usr/bin/perl --  ← を追加してオプション指定と勘違いさせると、うまく動く。