概要 |
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として実行されません。
各プログラムのパスは以下のようになっています。
|
プログラム名 |
バージョン |
パス |
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.5(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も動作するようになっています。
・PHP 5.6 CGIタイプ及び、PHP 7.2 CGIタイプのみサイトマネージャよりPHP.INIを追記することが出来ます。
弊社環境における定義済の関数はこちらをご覧下さい。
定義済関数一覧
phpinfoなど、弊社にて一部制限を設けている関数も含まれておりますので、ご了承下さい。
また、system()関数等による外部プログラムの実行にも制限を設けておりますので、
組込み関数を利用したプログラムの作成を行なっていただくようお願いいたします。
また、php.ini等の設定により、上記の一部の関数が制限を受けるか無効となることがございますので、ご了承下さい。
【参考】セーフモードにより制限を受けるか無効となる関数
http://jp.php.net/manual/ja/features.safe-mode.functions.php
|
|
ファイル作成・操作関数について |
ファイルやディレクトリを作成・操作する関数(mkdir()やfopen()等)は制限を受けます。
ファイルやディレクトリの作成・操作を伴う実装にはCGIをご利用下さい。
|
注意事項 |
PHPのバージョンやご利用可能な関数、設定状態は予告なく変更する場合があります。
その際、プログラムの変更が必要となる場合は、お客様にて変更作業を行なっていただくこととなり、
当社では一切サポートいたしません。
あらかじめご了承下さい。
|
|
 |