カスタムCGIの利用方法
メールフォームや掲示板など動的なWebサイトを作りたい場合にはCGIの利用が便利です。ギガーンのサーバでもCGIの利用が可能です。ここではCGIを利用する際の基本的な考え方について記載しておきます。
1.Perl使用時の1行目(パス)
Perlで記述されたCGIを動作させたい場合1行目は以下に設定してください。
#!/usr/bin/perl
2.利用可能なディレクトリ
CGIが利用可能なディレクトリは「/httpdocs」と「/cgi-bin」です。「/httpdocs」ディレクトリはcgiファイル以外にも様々なファイルを配置することが出来ますが、「/cgi-bin」ディレクトリはcgiファイル以外は配置できませんのでお気を付け下さいませ。CGIプログラムは必ず拡張子を「.cgi」もしくは「.pl」にする必要があります。
【注意点】
- SSL経由でのCGIに関しては「/httpdocs」配下でのみ動作します。SSLを使用する場合は「/httpdocs」配下にCGIを設置してください。 また顧客データなどをデータベースではなくテキストファイルで保存する場合には、セキュリティー上の観点からデータのみ「/private」フォルダを使用してください。
- サブディレクトリの場合は「/httpdocs」ディレクトリにcgiファイルを配置できません。配置する場合は「/httpdocs」ディレクトリに「.htaccess」ファイルを配置してください。
「.htaccess」ファイル内記述
-------------------------------
AddHandler cgi-script .cgi
-------------------------------
ディレクトリ | 拡張子 | URL |
---|---|---|
/httpdocs | 「.cgi」「.pl」 | http://ドメイン名/ファイル名 |
/cgi-bin | 「.cgi」「.pl」 | http://ドメイン名/cgi-bin/ファイル名 |
ファイルのアップロードは「/httpdocs」もしくは「/cgi-bin」に行ってください。
3.パーミッション
弊社サーバではsuEXECという仕組みを使ってCGIを動作させています。この仕組みを使うことでセキュリティーが高い状態で安全にCGIを動作させることが可能です。suEXEC環境でCGIを動かすには以下の制限があります。CGIプログラムにパーミッションを設定する際には注意してください。
「CGIプログラムに対して所有者以外に書込権限を付与してはいけない」
なおプレミアギガーンではCGIプログラムに対して以下のパーミッションを推奨しています。
CGIプログラム | 755 |
---|---|
ディレクトリ | 755 |
記録用ファイル | 600 |
記録用ファイルとはカウンタプログラムなどで、現在のアクセス数を記録するためのファイルです。これらのファイルに関しても、所有者以外には書込権限を設定しないようにしましょう。
4.各種プログラムのパス
CGIから使用するsendmailなど各種プログラムのパスは以下のようになっています。
sendmail | /usr/sbin/sendmail |
---|---|
nkf | /usr/bin/nkf |