CGI・PHP・SSIは、HTMLだけでは実現できないアクティブなコンテンツを作成することができる仕組みです。 これらの仕組みを利用すると掲示板・アクセスカウンター・フォームメールなどをホームページ上に設置することができます。
ビジネスサーバ・Standardプラスではお客さまご自身で作成されたCGI・PHP・SSIや、インターネット上で配布されているCGIなどを自由に設置して使うことができます。
CGI・PHPを使用できるのはサイト管理者(admin)・Web特権ユーザーです。
SSIを使用できるのはサイト管理者(admin)・Web特権ユーザー・Webユーザーです。
メールユーザー・AnonymousFTPのお客さまはWebコンテンツを設置することができませんので、CGI・PHP・SSIを使用することはできません。
CGI・PHP・SSIを設置できるディレクトリはそれぞれ以下の通りです。ディレクトリによって使えるコンテンツが異なりますので、ご注意ください。
[サイト管理者(admin)・Web特権ユーザー]
/home | /cgi-bin | /cgi-def | |
---|---|---|---|
CGI | ○ | ○ | ○ |
PHP(SSIタイプ) | ○ | × | × |
PHP(CGIタイプ) | ○ | ○ | ○ |
SSI | ◎※1 | × | × |
SSLオプションサービスをご契約いただいた場合は /ssl ディレクトリの中にSSLコンテンツ用のhome ・cgi-bin・cgi-defディレクトリが作られます。そちらのディレクトリについても上記の表と同じように動作します。
[Webユーザー]
/ | |
---|---|
CGI | × |
PHP(SSIタイプ) | × |
PHP(CGIタイプ) | × |
SSI | ○※2 |
CGIの場合、ファイルをアップロードした後にファイルのパーミッションを変更する必要があります。 CGIの実行ファイルは700(rwx------)、 CGIのデータファイルは600(rw-------)に設定してください。
CGIの言語はPerl・Ruby・C言語・シェルスクリプト・Pythonに対応しています。
/home ・ /ssl/home ディレクトリ内にCGIを置く場合、CGIの実行ファイル(プログラムファイル)の拡張子を .cgi にする必要があります。 .cgi 以外の拡張子のファイルはCGIとして実行されません。
/cgi-bin・/cgi-def・/ssl/cgi-bin・/ssl/cgi-def ディレクトリ内では拡張子にかかわらずすべてのファイルがCGIの実行ファイ ルとして扱われますので、拡張子に制限はありません。
各プログラムのパスは以下のようになっています。
プログラム名 | パス |
---|---|
Perl | /usr/bin/perl /usr/local/bin/perl |
Ruby | /usr/bin/ruby |
Python | /usr/bin/python |
PHP | /usr/local/bin/php |
Ruby、Pythonで作成したCGIを/home・/ssl-home ディレクトリにおいてそれぞれの拡張子(.rb、.py)
で動作させたい場合は、
AddHandler cgi-script .rb
AddHandler cgi-script .py
を記述した.htaccess を設置してください。
C言語を使用したCGIの場合は、あらかじめLinux用にコンパイルしたバイナリファイルをアップロードして下さい。サーバーへファイルを アップロードする場合はFTPソフトの転送モードをバイナリモー ドに設定して下さい。バイナリモードで転送しない場合、正しく動作しなくなることがあります。
シェルスクリプトで記述したCGIスクリプトの1行目には#!/bin/shと記述して下さい。サーバーへファイルをアップロードする場合はFTPソフトの転送モ ードをアスキーモード(テキストモード)に設定して下さい。アスキーモードで転送しない場合、正しく動作しなくなることがあります。
なお、無限ループなどによりサーバーが高負荷状態に陥ることを防ぐため、1回の動作時間が一定時間以上動作しているCGIは自動的に終了される場合があります。
サーバーが高負荷な状態に陥る事を防ぐための対処として、メモリの使用量・CPUの使用時間に関しても同様に制限が設けられています。
また、CGIのなかにはシステムの/tmpディレクトリにテンポラリーファイルを作成する挙動をするものがあります。/tmpディレクトリに設置できるファイルは20MBの制限が設けられています。 こちらの制限を越えるファイルは設置することができませんので、ご注意ください。
PHPの動作形式として、SSIタイプ(Apacheのモジュール形式)とCGIタイプがあります。一般的に、PHPはSSIタイプとして使用されます。
CGIタイプのため、.htaccessファイル内に記述したphp_value upload_max_filesizeなどの内容が有効になりません。
対処方法としては、PHPの実行ファイルと同階層に [.user.ini]ファイルを設置することで、設定変更可能なディレクティブがあります。参考例をご案内しますのでご利用ください。
【 .user.ini 】
post_max_size = 20M
upload_max_filesize = 20M
memory_limit = 128M
本設定例ですが、実際に設置の際には、十分に動作確認を行い、お客さまの責任の元でご利用くださいますようお願いいたします。
PHPバージョン5.3をご利用になるには、.htaccessの設定が必要です。
次の手準備で準備ください。
<お知らせ>
PHPの「OpenSSL」「cURL」モジュールをご利用いただけるようになりました。 * これらはEC-CUBE等のECサイトにおいて、決済サービスとセキュアに接続するために必要となる場 合のあるモジュールとなります。
SSIは /home ・ /ssl/home ディレクトリ内とWebユーザーの /(ルート)ディレクトリ内で使用することができます。 /cgi-bin・/cgi-def・/ssl/cgi-bin・/ssl/cgi-def ディレクトリではSSIを使用することができません。
SSIファイルの拡張子は .shtml にして下さい。.shtml以外の拡張子でSSIを実行させる場合は、「.htaccess」ファイルを使用して設定を変更する必要があります。
.htaccess に記述する内容は
AddHandler server-parsed .html
となります。
※上記記述(AddHandler)はWebユーザーの/(ルート)ディレクトリ内ではご利用いただけません。Webユーザーの領域でSSIをご利用
になる場合は、ファイルの拡張子は .shtml にして下さい。
/home ・ /ssl/home ディレクトリ内ではApacheがサポートしているすべてのSSIコマンドを使うことができます。 Webユーザーの /(ルート)ディレクトリ内では「# exec」で始まるコマンドを除くSSIコマンドを使うことができます。
CGIでメールを送信する処理を行う場合は、サーバーに用意されているsendmailをご利用頂く事ができます。 sendmailが置かれているサーバー上のパスは、 /usr/lib/sendmail もしくは /usr/sbin/sendmail です。 CGIスクリプト内で記述するコマンドの書式は、以下の様になります。
/usr/lib/sendmail -t -f(発信元アドレス)
(発信元アドレス)にはメールの発信元として使用するメールアドレスを入力して下さい。 通常はお客さまご自身のメールアドレスを設定します。 例えば、お客さまの メールアドレスがtaro@sample.ne.jpの場合は
/usr/lib/sendmail -t -ftaro@sample.ne.jp
と記述して下さい。
上記のアドレスは例として挙げたものです。 設定したアドレスには配送エラーの通知などが届きますので、 このアドレスはそのまま記述せず、必ずお客さまご 自身のメールアドレスを記述してご利用下さい。
なお、ビジネスサーバ・Standardプラスではメールサーバープログラムにqmailを使用しておりますので、 実際にはsendmailはインストールされておらず、sendmailはqmailへのリンクとなっております。基本的にはsendmail と同様な方法でご利用頂く事が可能ですが、sendmailのオプションは上記の様に「-t」と「-f(発信元アドレス)」のみをご使用下さい。
UNIXコマンドをCGIから呼び出して使用したい場合は、サイトマネージャーからコマンド検索 を行うことができますのでそちらを使用してコマンドのパスを検索して下さい。
よく使うコマンドのパス:
【sendmail】/usr/sbin/sendmailまたは/usr/lib/sendmail
画像処理を行うライブラリ「GD」および「ImageMagick」に対応しています。 これらのライブラリを使用することにより、サムネイル画像の自動生成などの動的な画像処理をホームページ上で行うことが出来るようになります。
グラフィックライブラリをご利用になる場合は、お客さまにて必要な処理を行うプログラム(CGI・PHP)を作成してサーバーに設置して下さい。 具体的なプログラムの記述方法については弊社のサポート対象外となりますので、使用方法について解説されている書籍・サイトなどをご参考にプログラムを作成して下さい。
プログラムの言語はPerl・PHP・C言語をご利用頂くことができます。 Perl用のインタフェースはGD.pmおよびPerlMagickをご利用頂くことができます。 PHPの場合はPHPに標準実装されているイメージ関数をご利用下さい。
【参考サイト】
サーバーでは以下のPerlモジュールをご利用頂くことができます。 各モジュールの使用方法・Perlの記述方法についてはサポ ート外となりますので、ご了承の上ご利用下さいます様お願い致します。
[拡張子が .pl のモジュール]
[拡張子が .pm のモジュール]