CGI・PHPについて
CGIとは
アクセスカウンタや掲示板を設置する場合によく利用されます。
HTMLに比べ若干設置方法は難しくなりますので、以下の情報をよくお読みいただいた上で設置を行ってください。
対応言語
CGIの作成にご利用いただける言語として弊社がサポートする言語はPerl・PHP4の2種類です。
その他の言語についてはLinux上で動作するバイナリファイルを作成できる言語であれば基本的には使用可能と思われますが、動作保証はいたしかねます。
各種プログラムのパス
サーバ上にインストールされている主なプログラムのパスです。CGIからこれらのプログラムを呼び出して利用できます。
- perl
- /usr/bin/perl
- PHP4
- /usr/local/bin/php
- sendmail
- /usr/sbin/sendmail
- Perlで記述したCGIスクリプトの1行目には #!/usr/bin/perl と記述してください
- PHP4で記述したスクリプトには、拡張子として.phpをつけて保存してください。
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-------)
に設定していただくことをおすすめします。
ご注意
ABAホスティングサービスのサーバのではHTMLファイルの中に <? ?> などのタグを書き、その中にPHPスクリプトを記述しておくだけで動作するようになっております。
PHPのバージョンは4.4.1です。
PHPを使用する具体的な手順は、以下のようになります。
- HTMLタグやPHPスクリプトを記述したファイルをテキストエディタ等で作成します。
ここでは例として以下の内容を記述し、「index.php」というファイル名で保存します。
<?phpinfo()?>
- index.phpをFTPソフトでサーバの ホームディレクトリに転送し、パーミッションを 700(rwx------) に設定します。
- ブラウザで http://(ドメイン名またはIPアドレス)/index.php にアクセスします。正しくPHPが動作すれば、PHPのバージョン情報などが表示されます。
記述するPHPスクリプトの内容を変えれば、同じ要領でお客様が作成したPHPスクリプトを動作させることができます。
CGIでメールを送信する処理を行う場合は、サーバに用意されているsendmailをご利用いただけます。
sendmailが置かれているサーバ上のパスは、/usr/lib/sendmail
です。CGIスクリプト内で記述するコマンドの書式は、以下の通りです。
/usr/sbin/sendmail -t -f(発信元アドレス)
(発信元アドレス)にはメールの発信元として使用するメールアドレスを入力してください。 通常はお客様ご自身のメールアドレスを設定します。
例えば、お客様のメールアドレスが tsuka@aba.ne.jp の場合は
/usr/sbin/sendmail -t -f tsuka@aba.ne.jp
と記述してください。