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 -- ← を追加してオプション指定と勘違いさせると、うまく動く。