CGI利用ガイド
CGIとは
アクセスカウンタや掲示板を設置する場合によく利用されます。
HTMLに比べ若干設置方法は難しくなりますので、以下の情報をよくお読みいただいた上で設置を行ってください。
対応言語
CGIの作成にご利用いただける言語として弊社がサポートする言語はPerlのみになります。
その他の言語についてはLinux上で動作するバイナリファイルを作成できる言語であれば基本的には使用可能と思われますが、動作保証はいたしかねます。
各種プログラムのパス
サーバ上にインストールされている主なプログラムのパスです。CGIからこれらのプログラムを呼び出して利用できます。
- perl /usr/bin/perl または /usr/local/bin/perl
- sh /bin/sh
- sendmail /usr/lib/sendmail
Perlで記述したCGIスクリプトの1行目には #!/usr/bin/perl または #!/usr/local/bin/perl と記述してください。
CGIファイルの転送
- CGIをサーバに転送する時は、必ず管理者用アカウント(admin)を使用してFTP接続し、転送を行ってください。また、CGIの実行ファイルは /cgi-bin ディレクトリ内に転送しないと動作しません。
- /home ディレクトリなど、他のディレクトリ内にCGIの実行ファイルを置いても動作いたしませんので実行ファイルは必ず /cgi-bin ディレクトリの中に置いてください。
- ほとんどのFTPソフトには、バイナリモードとアスキーモード(テキストモード)という2種類の転送モードがあります。
Perlやシェルスクリプトで記述されたテキストファイルのCGIを転送する場合は必ずアスキーモードで転送してください。バイナリモードで転送すると正常に動作しない場合があります。 - C言語を使用して作成したバイナリファイルのCGIを転送する場合はバイナリモードで転送を行ってください。
- 初期状態ではHTMLファイルや画像ファイルなどを /cgi-bin ディレクトリ内に設置してもそのファイルをブラウザから直接参照することはできません。
パーミッションの設定
サーバにファイルを転送したら、パーミッションの設定を行ってください。パーミッションの設定が正しく行われていないと、CGIが正常に動作しなくなったり、第三者からの不正なアクセスを受けてしまったりする可能性があります。
パーミッションの設定はパーミッション変更機能のあるFTPソフトを使用して行ってください。
通常、設定するパーミッションの値はCGIファイルのドキュメントなどに記載されていますが、abaホスティングサービスのサーバでは所有者(owner)に読み取り権(r)と実行権(x)が設定されている必要があります。
特に差し支えがなければ
- CGIが置かれているフォルダのパーミッションは 705(rwx---r-x)
- 実行させるCGIファイルのパーミッションは 700(rwx------)
- 書込みを行うデータファイルのパーミッションは 600(rw-------)
に設定していただくことをおすすめします。
sendmail
CGIでメールを送信する処理を行う場合は、サーバに用意されているsendmailをご利用いただけます。sendmailが置かれている
サーバ上のパスは、/usr/lib/sendmail です。CGIスクリプト内で記述するコマンドの書式は、以下の通りです。
- /usr/lib/sendmail -t -f(発信元アドレス)
(発信元アドレス)にはメールの発信元として使用するメールアドレスを入力してください。 通常はお客様ご自身のメールアドレスを設定します。
例えば、お客様のメールアドレスが tsuka@aba.ne.jp の場合は
- /usr/lib/sendmail -t -f tsuka@aba.ne.jp
と記述してください。