ホームページ~CGI・PHP・SSI
1.概要
CGI・PHP・SSIは、HTMLだけでは実現できないアクティブなコンテンツを作成することができる仕組みです。 これらの仕組みを利用すると掲示板・アクセスカウンター・フォームメールなどをホームページ上に設置することができます。
WebARENA SuiteXではお客さまご自身で作成されたCGI・PHP・SSIや、インターネット上で配布されているCGIなどを自由に設置して使うことができます。
2.使用出来るお客さま
CGI・PHPを使用できるのはサイト管理者(admin)・Web特権ユーザーです。
SSIを使用できるのはサイト管理者(admin)・Web特権ユーザー・Webユーザーです。
メールユーザー・AnonymousFTPのお客さまはWebコンテンツを設置することができませんので、CGI・PHP・SSIを使用することはできません。
3.ファイルの設置ディレクトリ
CGI・PHP・SSIを設置できるディレクトリはそれぞれ以下の通りです。ディレクトリによって使えるコンテンツが異なりますので、ご注意ください。
[サイト管理者(admin)・Web特権ユーザー]
/home | /cgi-bin | /cgi-def | |
---|---|---|---|
CGI | ○ | ○ | ○ |
PHP(モジュールタイプ) | ○ | × | × |
PHP(CGIタイプ) | ○ | ○ | ○ |
SSI | ◎※1 | × | × |
※1 すべてのSSIコマンドを使用することができます。
SSLオプションサービスをご契約いただいた場合は /ssl ディレクトリの中にSSLコンテンツ用のhome ・cgi-bin・cgi-defディレクトリが作られます。そちらのディレクトリについても上記の表と同じように動作します。
[Webユーザー]
/ | |
---|---|
CGI | × |
PHP(モジュールタイプ) | × |
PHP(CGIタイプ) | × |
SSI | ○※2 |
※2 「# exec」で始まるSSIコマンドを使用することはできません。
CGIの場合、ファイルをアップロードした後にファイルのパーミッションを変更する必要があります。 CGIの実行ファイルは700(rwx------)、CGIのデータファイルは600(rw-------)に設定してください。
4.CGI
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 を設置してください。
サーバーへファイルをアップロードする場合はFTPソフトの転送モードをアスキーモード(テキストモード)に設定して下さい。アスキーモードで転送しない場合、正しく動作しなくなることがあります。
C言語を使用したCGIの場合は、あらかじめLinux用にコンパイルしたバイナリファイルをアップロードして下さい。サーバーへファイルを アップロードする場合はFTPソフトの転送モードをバイナリモー ドに設定して下さい。バイナリモードで転送しない場合、正しく動作しなくなることがあります。
シェルスクリプトで記述したCGIスクリプトの1行目には#!/bin/shと記述して下さい。サーバーへファイルをアップロードする場合はFTPソフトの転送モ ードをアスキーモード(テキストモード)に設定して下さい。アスキーモードで転送しない場合、正しく動作しなくなることがあります。
なお、無限ループなどによりサーバーが高負荷状態に陥ることを防ぐため、1回の動作時間が一定時間以上動作しているCGIは自動的に終了される場合があります。
サーバーが高負荷な状態に陥る事を防ぐための対処として、メモリの使用量・CPUの使用時間に関しても同様に制限が設けられています。
また、CGIのなかにはシステムの/tmpディレクトリにテンポラリーファイルを作成する挙動をするものがあります。/tmpディレクトリに設置できるファイルは30MBの制限が設けられています。 こちらの制限を越えるファイルは設置することができませんので、ご注意ください。
5.PHP
PHPの動作形式として、モジュールタイプ(Apacheのモジュール形式)とCGIタイプがあります。一般的に、PHPはモジュールタイプとして使用されます。
- モジュールタイプのPHPはHTMLファイルの中にPHPスクリプトを書くだけで動作します。
- PHP7.4 CGIタイプでは、IMAP関数をご利用になることができません。
- 使用可能なメモリは128MBです。
- アップロード可能な容量は30MBです。ファイルのサイズが30MB以上の場合は、FTP経由で直接サーバーへアップロードをお試しください。
PHPの利用方法について
■ CGIタイプの場合
- 拡張子について
/home ・ /ssl/home ディレクトリ内に置くPHPファイルの拡張子を .phpにしてください。
これらの拡張子のファイルだけがPHPファイルとして処理されます。
■ モジュールタイプの場合
- 拡張子について
/home ・ /ssl/home ディレクトリ内に置くPHPファイルの拡張子を .php もしくは.phtml にしてください。
これらの拡張子のファイルだけがPHPファイルとして処理されます。
また、 拡張子が「.phps」のファイルは、phpソースとして処理されます。
PHPバージョンの切り替え
サイトマネージャーでPHPバージョンの切り替えができます。
サイトマネージャーにログインし、「CGI管理 > PHPバージョンの切り替え」へ移動します。
初期値では、ご契約いただいた時期により異なります。
利用したいPHPバージョンを選択して「設定」ボタンをクリックしてください。
ディレクトリごとにPHPのバージョンを変更されたい場合は.htaccessの設定が必要です。
次の手順で準備ください。
- ご使用になる該当ディレクトリに .htaccess を設置してください。
.htaccessファイルの修正はFTPソフトで接続し、メモ帳などのテキストエディタ等で編集を行ないます。 - .htaccessに以下の項目を追記します。(例:PHPバージョン5.3を指定する場合)
AddHandler application/x-httpd-php53 .php
CGIタイプについて
■ php.ini の設定値の変更方法
PHP7.4、7.2、5.6のCGIタイプをご利用の場合、PHP各種設定値(php.ini)を編集することができます。
<ご注意>
php.ini編集設定は上級者向けの機能です。お客さま責任の元ご利用ください。編集後、動作不具合が発生しても一切の責任を負いかねます。
サイトマネージャーにログインし、「CGI管理」>「php.ini 編集」をクリックします。
PHPバージョンを選択し、「編集」ボタンをクリックします。
編集画面で設定値を変更したい項目と設定値を入力します。その後、確認し完了してください。
指定した項目の設定値が上書きされます。
編集設定した内容を削除するとデフォルト値に戻ります。
6.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コマンドを使うことができます。
7.sendmailの使用
CGIでメールを送信する処理を行う場合は、サーバーに用意されているsendmailをご利用頂く事ができます。 sendmailが置かれているサーバー上のパスは、 /usr/lib/sendmail もしくは /usr/sbin/sendmail です。 CGIスクリプト内で記述するコマンドの書式は、以下の様になります。
/usr/lib/sendmail -t -f(発信元アドレス)
(発信元アドレス)にはメールの発信元として使用するメールアドレスを入力して下さい。 通常はお客さまご自身のメールアドレスを設定します。 例えば、お客さまの メールアドレスがsuitetaro@arena.ne.jpの場合は
/usr/lib/sendmail -t -fsuitetaro@arena.ne.jp
と記述して下さい。
上記のアドレスは例として挙げたものです。 設定したアドレスには配送エラーの通知などが届きますので、 このアドレスはそのまま記述せず、必ずお客さまご 自身のメールアドレスを記述してご利用下さい。
なお、WebARENA SuiteXではメールサーバープログラムにqmailを使用しておりますので、 実際にはsendmailはインストールされておらず、sendmailはqmailへのリンクとなっております。基本的にはsendmail と同様な方法でご利用頂く事が可能ですが、sendmailのオプションは上記の様に「-t」と「-f(発信元アドレス)」のみをご使用下さい。
8.各種UNIXコマンドのパス
UNIXコマンドをCGIから呼び出して使用したい場合は、サイトマネージャーからコマンド検索 を行うことができますのでそちらを使用してコマンドのパスを検索して下さい。
よく使うコマンドのパス:
【sendmail】/usr/sbin/sendmailまたは/usr/lib/sendmail
9.グラフィックライブラリ
画像処理を行うライブラリ「GD」および「ImageMagick」に対応しています。 これらのライブラリを使用することにより、サムネイル画像の自動生成などの動的な画像処理をホームページ上で行うことが出来るようになります。
グラフィックライブラリをご利用になる場合は、お客さまにて必要な処理を行うプログラム(CGI・PHP)を作成してサーバーに設置して下さい。 具体的なプログラムの記述方法については弊社のサポート対象外となりますので、使用方法について解説されている書籍・サイトなどをご参考にプログラムを作成して下さい。
プログラムの言語はPerl・PHP・C言語をご利用頂くことができます。 Perl用のインタフェースはGD.pmおよびPerlMagickをご利用頂くことができます。 PHPの場合はPHPに標準実装されているイメージ関数をご利用下さい。
【参考サイト】
10.Perlのモジュール
WebARENA SuiteXのサーバーではPerlモジュールをご利用になることができます。 各モジュールの使用方法・Perlの記述方法についてはサポ ート外となりますので、ご了承の上ご利用ください。