CGI や Perl 、SSI などホスティングサービスを選ぶ上で注意したいポイントとその他の言語について説明します。
CGI とはサーバー側に設置するプログラムの事でWEBサーバーから呼び出しで実行する仕組みです。掲示板やフォームメールといった無料や有償で配布されている CGI の多くは Perl というスクリプト言語で書かれています。
ホスティングサービスの中には、リソース、セキュリティ上の問題から独自に作成、または用意した CGI の設置を禁止し、事業者側が提供する CGI のみ利用を許可している事業者があります。
利用したい掲示板や、自分で作成した CGI を設置したい場合は、ホスティングサービスが独自CGI を利用を認めている必要があります。ちなみに 専用サーバーの場合は、このようなしがらみはありません。
前述したように、CGI の多くは Perl で書かれています。また、 Perl を実行させる場合でも、ホスティングサーバー側でスクリプトが使用するモジュールが組み込まれていないと動作しないケースがあります。
代表的な例には、Jcode (日本語コード変換ライブラリ) や sendmail.pl といった CGI 経由で メールを送信するモジュールが事業者が提供する Perl にモジュールとして組み込まれていなければ、フォームメール CGI といった perl スクリプトをサーバーで実行させる事は出来ません。
利用したい CGI スクリプトがある場合は、その動作条件を確認し、動作条件を満たしているかホスティングサービスを提供する事業者に問い合わせる必要があります。また、無茶な要求でなければ要望すれば提供してもらえる可能性もあります。
Sendmail 対応という表記は、メールサーバーに sendmail を利用しているという意味ではありません 。
CGI の項目に suEXEC 対応といった表記がある場合があります。これは、CGI を実行させる権限をユーザー権限(契約者)で実行するという意味です。
独自CGI を許可する場合、CGI の実行権限がデフォルトの権限だとサーバー内の CGI に対して攻撃が出来てしまうため、共用するホスティングサービスではセキュリティ上、提供されるべき機能です。
昔は対応している所が少なかったため、従来のパーミッションの設定では CGI が動作しない場合がありますが、基本的に動作させることは可能です。
perl の他にも、サーバー側で実行可能な様々なスクリプト言語があります。ホスティングサービスで目的のスクリプトを使用したい場合は、事業者から提供されている必要があります。 代表的なものを幾つか紹介します。
Python(パイソン) とは様々な用途に利用される汎用スクリプト言語ですが、WEB サイト関連でも Google Sitemap のように WEBマスターにとって 比較的重要なスクリプトが Python Script で提供されていたりします。
これらのスクリプトを利用したい場合、ホスティングサーバーが提供している必要があります。、Google Sitemap サービスをオートメーションで行いたい場合は、Cron などのスケジュール実行ツールも提供されている必要があります。
Ruby とは まつもと ゆきひろ氏が開発、無料で公開しているオブジェクト指向のスクリプト言語です。Perl と同等の機能を持っています。日本人が開発してる言語であるため、国内では人気の高いスクリプト言語です。Ruby を使用した開発やスクリプトを利用したい場合は必要です。
SSI とは Server Side Includes の略称で、呼んで字のごとくサーバー側で予め組み込まれた処理を実行しクライアントに返す仕組みです。利用方法は実に簡単で、html に直接記述する事で実行させる事が出来ます。
出来ることは限られるため、一つ一つの処理はCGI に比べサーバーに対して高い負荷をかける事はありませんが、html に記述しサイト訪問者がブラウザで読み込むタイミングで実行されるためサーバーには断続して高い負荷が発生します。
そのため、SSI の使用を制限しているホスティングサービスの方が多いです。むしろ、制限していないホスティングサービスでは、サーバーレスポンスが極端に悪いといった可能性が高くなります。
代表的なものに SSI を利用したアクセスカウンタなどがあります。簡単に利用されるのを防ぐため、.htaccess により使用できるディレクトリを制限するなどの対策を設けている所もあります。
ホスティングサービスの場合、制限されていない方が問題と考えて良いと思います。