概要 |
CGI・PHP・SSIは、HTMLだけでは実現できないアクティブなコンテンツを作成することができる仕組みです。
これらの仕組みを利用すると掲示板・アクセスカウンター・フォームメールなどをホームページ上に設置することができます。
スマイルサーバではお客さまご自身で作成されたCGI・PHP・SSIや、インターネット上で配布されているCGIなどを自由に設置して使うことができます。
|
ファイルの設置ディレクトリ |
CGI・PHP・SSIを設置できるディレクトリはそれぞれ以下の通りです。
ディレクトリによって使えるコンテンツが異なりますので、ご注意ください。
|
/home |
/cgi-bin |
/cgi-def |
CGI |
○ |
○ |
○ |
PHP(SSIタイプ) |
○ |
× |
× |
PHP(CGIタイプ) |
○ |
○ |
○ |
SSI |
◎※1 |
× |
× |
|
※1 すべてのSSIコマンドを使用することができます。
|
CGIの場合、ファイルをアップロードした後にファイルのパーミッションを変更する必要があります。
CGIの実行ファイル700(rwx------)、 CGIのデータファイルは600(rw-------)に設定してください。
|
CGI |
CGIの言語はPerl・Ruby・C言語・シェルスクリプト・Pythonに対応しています。
/home ディレクトリ内にCGIを置く場合、CGIの実行ファイル(プログラムファイル)の拡張子を .cgi にする必要があります。.cgi 以外の拡張子のファイルはCGIとして実行されません。
/cgi-bin・/cgi-def・/ssl/cgi-bin・/ssl/cgi-def ディレクトリ内では拡張子にかかわらずすべてのファイルがCGIの実行ファイルとして扱われますので、拡張子に制限はありません。
各プログラムのパスは以下のようになっています。
|
プログラム名 |
バージョン |
パス |
Perl |
5.10.1 |
/usr/bin/perl /usr/local/bin/perl |
Ruby |
2.0.0 |
/usr/bin/ruby |
Python |
2.6.6 |
/usr/bin/python |
PHP |
5.1.6/5.3.3/5.6.20/7.2.28/7.4.15(CGIモード)
5.6.20(モジュールモード) |
/usr/local/bin/php |
Ruby、Pythonで作成したCGIを/home・/ssl-home ディレクトリにおいてそれぞれの拡張子(.rb、.py)
で動作させたい場合は、 AddHandler cgi-script .rb
AddHandler cgi-script .py を記述した.htaccess を設置してください。
サーバーへファイルをアップロードする場合はFTPソフトの転送モードをアスキーモード(テキストモード)に設定して下さい。
アスキーモードで転送しない場合、正しく動作しなくなることがあります。
C言語を使用したCGIの場合は、あらかじめLinux用にコンパイルしたバイナリファイルをアップロードして下さい。
サーバーへファイルを アップロードする場合はFTPソフトの転送モードをバイナリモードに設定して下さい。バイナリモードで転送しない場合、正しく動作しなくなることがあります。
シェルスクリプトで記述したCGIスクリプトの1行目には #!/bin/sh と記述して下さい。
サーバーへファイルをアップロードする場合はFTPソフトの転送モードをアスキーモード(テキストモード)に設定して下さい。アスキーモードで転送しない場合、正しく動作しなくなることがあります。
なお、無限ループなどによりサーバーが高負荷状態に陥ることを防ぐため、1回の動作時間が一定時間以上動作しているCGIは自動的に終了される場合があります。
サーバーが高負荷な状態に陥る事を防ぐための対処として、メモリの使用量・CPUの使用時間に関しても同様に制限が設けられています。
また、CGIのなかにはシステムの/tmpディレクトリにテンポラリーファイルを作成する挙動をするものがあります。
/tmpディレクトリに設置できるファイルは20MBの制限が設けられています。
こちらの制限を越えるファイルは設置することができませんので、ご注意ください。
|
PHP |
PHPの動作形式として、SSIタイプ(Apacheのモジュール形式)とCGIタイプがあります。
一般的に、PHPはSSIタイプとして使用されます。
・SSIタイプのPHPはHTMLファイルの中にPHPスクリプトを書くだけで動作します。 ただし、スマイルサーバV2/V3との互換性のためCGIタイプのPHPも動作するようになっています。
・※Ver.4のみ PHP 5.6 CGIタイプ及び、PHP 7.2 CGIタイプのみサイトマネージャよりPHP.INIを追記することが出来ます。
|
|
PHPの利用方法について |
■ CGIタイプの場合
・記述方法 記述したCGIスクリプトの1行目に #!/usr/bin/phpもしくは#!/usr/local/bin/php と記述してください。
・パーミッション 転送後CGIと同様にパーミッションを700(rwx------)に変更してください。
・拡張子について CGIタイプのPHPの場合、拡張子はCGIに準じます。
■ SSIタイプのPHPの場合
・拡張子について /home ・ /ssl/home ディレクトリ内に置くPHPファイルの拡張子を .php もしくは.phtml にしてください。 これらの拡張子のファイルだけがPHPファイルとして処理されます。 また、 拡張子が「.phps」のファイルは、phpソースとして処理されます。
|
PHP7.4及び8.3のCGIタイプについて ※ver.4の場合はPHP5.3 |
■ php.ini の設定値の変更方法
CGIタイプのため、.htaccessファイル内に記述したphp_value upload_max_filesizeなどの内容が有効になりません。
対処方法としては、PHPの実行ファイルと同階層に [.user.ini]ファイルを設置することで、設定変更可能なディレクティブがあります。参考例をご案内しますのでご利用ください。
【 .user.ini 】
post_max_size = 20M
upload_max_filesize = 20M
memory_limit = 128M
※ 20MBまでの範囲であれば任意の値を設定できます。
本設定例ですが、実際に設置の際には、十分に動作確認を行い、お客さまの責任の元でご利用くださいますようお願いいたします。
<お知らせ>
・PHPのパラメータを読み込む順序は、サーバ全体のPHP.INI→本機能で設定したパラメータ→.user.iniとなります。 そのため、.user.iniを設置されている場合は、その値が最終的に有効となり、既に.user.iniを設置されている場合、サイトマネージャで同一のパラメータを記述しても設定が反映されませんのでご注意ください。
・PHP.ini編集設定は上級者向けのサポート対象外機能です。お客さま責任の元ご利用ください。 編集後、動作不具合が発生しても一切の責任を負いかねます。
|
PHP7.4 CGIタイプの制限について ※ver.4のみ |
PHP7.4 CGIタイプでは、IMAP関数をご利用になることができません。
IMAP関数を利用する必要がある場合は、他のバージョンをご利用ください。
|
SSI |
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コマンドを使うことができます。
|
注意事項 |
PHPのバージョンやご利用可能な関数、設定状態は予告なく変更する場合があります。
その際、プログラムの変更が必要となる場合は、お客様にて変更作業を行なっていただくこととなり、
当社では一切サポートいたしません。
あらかじめご了承下さい。
|
|
 |