| ■CGIを使う設定■ |
| Apacheの設定で,いちおうCGIは使えるようにしていますが,必ずcgi-binというディレクトリに入れる必要があります.かっちょ悪いです. そこで,public_html以下のどのディレクトリでもCGIを使えるように変えます. |
| <Directory "X:/home/*/puplic_html"> Options +ExecCGI </Directory> |
| このように,公開ディレクトリパス設定のオプションのExecCGIの頭に+をつけます. これでpublic_html以下のディレクトリでCGIが動くようになります. |
| ■perlのインストール |
| Active Perlを入れます. インストール先はX:\local\Perl\となるようにします. この説明は省略します. |
| ■CGIスクリプト側の設定 |
| フリー配布されているCGIスクリプトを使う場合,第1行のPerlのパスを変えてやる必要があります. #!/usr/local/bin/perl となっているところを #!X:/local/perl/bin/perl と書き換えます.この場合,Perl for win32が\local\perlにインストールされているという前提です. |
| 掲示板スクリプトなどではsendmailで投稿がメール送信されるものがあります. サーバ側にsendmail機能があれば問題ないのですが,sendmailを持つメールサーバは,なかなか設定がやっかいで,私はまだ成功していません. そこで,sendmailのcgiスクリプトをサーバPCに入れて,パスを書き換えます. $sendmail = '/usr/lib/sendmail'; となっているところを $sendmail = 'X:/local/perl/bin/perl.exe X:/local/XXXX/sendmail.cgi'; とします. こうすることで,サーバがサーバらしく動くようになります. |
| ■httpd.confの再設定 |
| デフォルトではCGIのハンドラーはコメントになっています. コメントを外してあるか再チェックしましょう. #AddHandler cgi-script .cgi #があれば取り去ります. |
| ■CGIが動かない場合 |
| 私の経験では,ほとんどが自分の記述ミスか,不適応CGIかです. 記述ミスはエラーログで見つけ出せますが,不適応CGIは不具合個所を見つけるのが困難です. UNIX用のコマンドが原因みたいです. しかし,私には直せません..... フリー掲示板CGIの中には(dlighi.cgiもそうですが) Windowsサーバでは返信時に文字数がある範囲を超えると,投稿エラーを起こすものがあります. CGIはもともとUNIX上で使うことを前提としているでしょうから仕方がないのですが,使えるCGIを見つけ出すのに苦労するという短所があります. |
| ■cgiでsendmailを使う(2003.06.07追記) |
| 上にも書きましたが,Windowsサーバの場合,cgiのsendmailはsendmai.cgiを使うのが簡単でお勧めできます. 実は,今までこのsendmail.cgiは以前のレンタルサーバのメールサーバを使う設定になったままでした. 本日ついにこのメールサーバが機能停止したらしく,朝からsendmailが使えない状態でした. そこで,自宅サーバのメールサーバを使うように設定を変更しました. |
| # 設定 #◇SMTPサーバ $smtp = "127.0.0.1"; #◇標準 FORM アドレス $from = 'xxxxxxxx@kubo-office.com'; #◇ エラーログの作成(sendmail.log) $logs = 1 ; #◇ タイムアウト秒数 (デフォルト推奨) $timeout = 20; #◇ アラームファイル (デフォルト推奨) $alarm =".alarmpid"; #======================================================================# #◇POP before SMTPを使用する yes=1 no=0 $pop_before_smtp = 0; #◇ POP3サーバアドレス $pop3 = "127.0.0.1"; #◇POP3接続用 USER-ID/PASSWORD $user = 'xxxxxxxx'; $pass = 'xxxxxxxxxxx'; |
| SMTPとPOPサーバを両方とも自宅サーバのBlackJunboDogを使うようにします. あとはBlackJunboDogで,sendmail用に新しいアカウントを作成し,そのアカウントから希望のメールアドレスに送信するようにします. どのメールアドレスに送るかは掲示板のcgi側で設定です. |
| ↑UP↑ |