アプリケーション~データベース(PostgreSQL)
概要
オプションサービスのDBオプション(データベース)にお申し込み頂くと、 PostgreSQLによる本格的なRDBMS(リレーショナルデータベース管理システム)をご利用頂くことが出来ます。
このページにはお申し込み手続き完了後の使用方法を記載しています。
サーバの仕様
WebARENA Suite2のDBオプションサービスでは、データベースエンジンにPostgreSQL 7.4.8 を使用しています。
サーバの構成は、以下の図の様になっています。

WebARENA Suite2のデータベースは、ご契約頂いているWebARENA Suite2サーバとは別に設置されている、専用のサーバに格納されています。
WebARENA Suite2のデータベースにアクセスする方法は2種類あります。
1つは専用の管理ツール「phpPgAdmin」を使用してデータベースを操作する方法(図中 1)です。
管理ツール「phpPgAdmin」については、オンラインマニュアル - 管理ツール - phpPgAdminをご覧ください。
「phpPgAdmin」では、データベースの作成や、データベースに対し任意のSQL文を発行しての操作、データベースのダンプ・リストアなどを行うことが出来ます。 ブラウザ上にメニューが表示され視覚的に操作することが出来ますので、メンテナンスを容易に行うことが出来ます。
もう1つはご利用頂いているWebARENA Suite2サーバに、データベースにアクセスするためのCGIプログラムをアップロードして(図中 2)、 そのCGIを通してデータベースにアクセスする方法(図中 3)です。通常はこちらの方法でご利用頂くことになります。 CGIプログラムは弊社ではご用意しておりませんので、お客様にて必要な機能を持ったCGIをご用意下さい。
CGIをご利用する場合の注意事項
ご契約時に弊社よりお知らせした初期ユーザ名は、CGI等を用いて削除しない でください。
初期ユーザ名を削除した場合は、データベースがご利 用頂けなくなることがございます。
万一、初期ユーザ名を削除した場合は、データベースの初期化が必要となり、 お客様のデータも破棄されてしまいますので、十分にご注意いただきますようお願い致します。
データベースサーバへの集中的な接続による負荷軽減のため、データベースサーバに同時アクセス数の制限を行っており、 制限値を超えた同時アクセスはできないようになっております。なお、具体的な制限値につきましては非公開とさせて頂いております。
- PostgreSQLのバージョンが「7.1.3」から「7.4.8」へ変更になりました。
使用容量について
WebARENA Suite2のデータベースオプションサービスでは、最大1GBまでデータを 収容することができます。
また、使用容量には、データベースのシステムで使用している容量も含まれます。
ご了承ください。
なお、容量制限にかかった場合、データベースへのデータ入力・編集・追加等の処理が出来なくなる、 データが破損する、データベースサービスが停止する等の問題が発生する恐れがございますので、 適宜不必要なデータを削除したり、vacuum 処理を行い、空き容量の確保をして下さいますようお願い致します。
使用容量をご確認する方法、vacuum による容量の確保に関しては、オンラインマニュアル - 管理ツール - phpPgAdminをご覧ください。
- データベース容量に1GBの制限がつきました。
CGIの言語とモジュール
データベースにアクセスするためのCGIを作成する言語は、PHP4・PHP5・Perl ・C言語がご利用頂けます。
PHPでCGIを作成する場合、オンラインマニュアル - ホームページ - CGI・PHP・SSIのページに使用方法が記載されておりますので、はじめにそちらをご覧下さい。 データベースへの接続方法については、このページの「PHPを使う場合の利用例」をご覧下さい。
PerlでCGIを作成する場合、WebARENA Suite2サーバにはデータベース用のPerlモジュールとしてDBIおよびDBD::Pgと、Pg.pmを用意しております。 Perlで作成したCGIプログラムからデータベースにアクセスする場合は、このどちらかをご利用下さい。
C言語でCGIを作成する場合、Linuxをインストールしたお客様のコンピュータ上で、Libpqインターフェースのライブラリlibpq.aをスタティックにリンクさせてコンパイルして下さい。
どちらの言語をご利用になる場合も、モジュールの使用方法やCGIプログラムの記述方法につきましてはサポート対象外とさせて頂いております。
ご不明な場合はデータベース・CGI関連の書籍やWebサイト等をご覧下さい。
- 管理ツールが「DB MANAGER」から「phpPgAdmin」へ変更になりました。
- PHP3はご利用頂けなくなりました。
データベースの作成
WebARENA Suite2のデータベースオプションでは、WebARENA Suiteのデータベースオプションとは違い、 ご契約直後は、データベースは存在致しません。
そのためまず管理ツール「phpPgAdmin」等から、お客様におきましてデータベースやテーブルの作成を行って頂く必要がございます。
管理ツール「phpPgAdmin」や、データベースの作成 については、オンラインマニュアル- 管理ツール - phpPgAdminをご覧ください。
管理ツール「phpPgAdmin」のURLは以下のようになります。
こちらよりデータベースの作成等を行ってください。
https://(お客様のデータベースサーバ名)/
- ご契約時に、データベースは存在しなくなりました。
PHPを使う場合の利用例
PHP4でCGIを作成し、SQL文を実行させてDBサーバ内に「suite2db」という名前のテーブルを作成する場合の手順です。 こちらの方法を参考にご利用下さい。
※操作を行う前に、上記「データベースの作成」を参考にデータベースの作成を行ってください。
- PHP4でCGIスクリプトを作成します。
実際にはお客様の用途に合わせて作成して頂くことになりますが、ここでは例として以下のCGIスクリプトを作成します。
CGIスクリプトの中に、お客様の環境に合わせて設定しなければならない部分があります。 橙色の部分はお客様の環境に合わせて書き換えて下さい。
#!/usr/local/bin/php4
<HTML>
- <HEAD>
- <TITLE>PHP Test</TITLE>
- </HEAD>
- <BODY>
- <?
- /*
- 「host=」の後には、お客様のDBサーバ名を設定して下さい。
- 「dbname=」の後には、お客様が管理ツール「phpPgAdmin」等で 作成したDB名を設定して下さい。
- 「user=」の後には、お客様のDBオプションサービス用ユーザ名、 またはお客様が作成したユーザ名を設定して下さい。
- 「password=」の後には、任意のユーザ(アカウント)に対して お客様が設定したパスワードを設定して下さい。
- こちらの例の場合、それぞれの項目は以下のようになります。
- DBサーバ名:abc.db1.arena.ne.jp
- DB名 :test
- ユーザ名 :abc.db1.arena.ne.jp
- パスワード:abcabc
- */
- /*
- ※「$dbh」から「password=
- ");」までの間に改行を入れないでください。
- $dbh = pg_connect("host=
- port=5432 dbname=
- user=
- password=
- ");
- if(!$dbh){
- echo "MESSAGE : cannot connect!<BR>";
- }else{
- /* データベースエンジンに実行させるSQL文 */
- $result = pg_exec($dbh,"CREATE TABLE suite2db (clumn_1 varchar(16))");
- echo "MESSAGE : Success<BR>";
- pg_close();
- }
- ?>
- </BODY>
</HTML> - 作成したCGIに適当な名前を付け、管理者用アカウント(admin)を使用してWebARENA Suite2サーバーの /cgi-bin ディレクトリに転送して下さい。
- 転送したCGIのパーミッションを 700(rwx------) に設定して下さい。
- CGIをブラウザから呼び出して実行させて下さい。
正しく実行されるとブラウザの画面に「MESSAGE : Success」と表示され、テーブルが作成されます。 - 管理ツール「phpPgAdmin」にログインして、「suite2db」という名前のテーブルが作成されていることを確認して下さい。
実行させるSQL文を変えればデータベースに対し任意の操作を行うことが出来ます。
Perlを使う場合の利用例
PerlでDBIおよびDBD::Pgモジュールを使用したCGIを作成し、SQL文を実行させてDBサーバ内に「suite2db」という名前のテーブルを作成する場合の手順です。 こちらの方法を参考にご利用下さい。
操作を行う前に、上記「データベースの作成」を参考にデータベースの作成を行ってください。
- PerlでCGIスクリプトを作成します。
実際にはお客様の用途に合わせて作成して頂くことになりますが、ここでは例として以下のCGIスクリプトを作成します。
CGIスクリプトの中に、お客様の環境に合わせて設定しなければならない部分があります。 橙色の部分はお客様の環境に合わせて書き換えて下さい。
#!/usr/bin/perl
use DBI; # DBIモジュールのロード
use CGI;
main:{
- # my($hostname) にはお客様のDBサーバ名を設定して下さい。
- # 以下はhostnameが abc.db1.arena.ne.jp の場合の例です。
- my($hostname) = "
- ";
- # my($dbname) にはお客様が管理ツール「phpPgAdmin」等で作成したDB名を設定して下さい。
- # 以下はdbnameが test の場合の例です。
- my($dbname) = "
- ";
- # my($username) にはお客様のDBオプションサービス用ユーザ名、
- # または、お客様が作成したユーザ名を設定して下さい。
- # 以下はusernameが abc.db1.arena.ne.jp の場合の例です。
- my($username) = "
- ";
- # my($passwd) には任意のユーザ(アカウント)に対してお客様が設定したパスワードを設定して下さい。
- # 以下はpasswdが abcabc の場合の例です。
- my($passwd) = "
- ";
- # ポート番号
- my($port) = "5432";
- # データベースエンジンに実行させるSQL文
- my($sql) = "CREATE TABLE suite2db (clumn_1 varchar(16))";
- # データベースサーバと接続する
- # ※「$dbh」から「&print("$DBI::errstr");」までの間に改行は入れないで下さい。
- $dbh = DBI->connect("dbi:Pg:dbname=$dbname;host=$hostname;port=$port", "$username","$passwd") || &print("$DBI::errstr");
- $que = $dbh->prepare("$sql")|| &print($dbh->errstr);
- # SQL文の実行
- $que->execute()|| &print($que->errstr);
- $que->finish();
- # データベースサーバとの接続を切る
- $dbh->disconnect;
- &print("Success");
}
sub print{
- my($error) = $_[0];
- print "Content-type:text/html\n\n";
- print "<HTML>\n";
- print "MESSAGE : $error";
- print "</HTML>\n";
- exit;
} - 作成したCGIに適当な名前を付け、管理者用アカウント(admin)を使用してWebARENA Suite2サーバーの /cgi-bin ディレクトリに転送して下さい。
- 転送したCGIのパーミッションを 700(rwx------) に設定して下さい。
- CGIをブラウザから呼び出して実行させて下さい。
正しく実行されるとブラウザの画面に「MESSAGE : Success」と表示され、テーブルが作成されます。 - 管理ツール「phpPgAdmin」にログインして、「suite2db」という名前のテーブルが作成されていることを確認して下さい。
実行させるSQL文を変えればデータベースに対し任意の操作を行うことが出来ます。
C言語を使う場合の利用例
C言語でlibpq.aモジュールを使用したCGIを作成し、SQL文を実行させてDBサーバ内に「suite2db」という名前のテーブルを作成する場合の手順です。 こちらの方法を参考にご利用下さい。
※操作を行う前に、上記「データベースの作成」を参考にデータベースの作成を行ってください。
- C言語でCGIのソースファイルを作成します。
実際にはお客様の用途に合わせて作成して頂くことになりますが、ここでは例として以下のCGIスクリプトを作成します。
CGIソースファイルの中に、お客様の環境に合わせて設定しなければならない部分があります。 橙色の部分はお客様の環境に合わせて書き換えて下さい。
#include "libpq-fe.h"
/*
HOSTNAME にはお客様のDBサーバ名を設定して下さい。
以下はHOSTNAMEが abc.db1.arena.ne.jp の場合の例です。
*/
#define HOSTNAME "abc.db1.arena.ne.jp"
/*
DBNAME にはお客様が管理ツール「phpPgAdmin」等で作成したDB名を設定して下さい。
以下はDBNAMEが test の場合の例です。
*/
#define DBNAME "test"
/*
USERNAME にはお客様のDBオプションサービス用ユーザ名、
または、お客様が作成したユーザ名を設定して下さい。
以下はUSERNAMEが abc.db1.arena.ne.jp の場合の例です。
*/
#define USERNAME "abc.db1.arena.ne.jp"
/*
DBPASS には任意のユーザ(アカウント)に対してお客様が設定したパスワードを設定して下さい。
以下はDBPASSが abcabc の場合の例です。
*/
#define DBPASS "abcabc"
/*
ポート番号
*/
#define DBPORT "5432"
main(){
- PGconn *conn;
- PGresult *res;
- int i;
- conn = PQsetdbLogin(HOSTNAME,DBPORT,NULL,NULL,DBNAME,USERNAME,DBPASS ) ;
- if(PQstatus(conn) == CONNECTION_BAD) {
- printf("Content-type:text/html\n\n");
- printf("<HTML>\n");
- printf("cannot connect!\n");
- printf("</HTML>\n");
- exit(0);
- }
- /*
- データベースエンジンに実行させるSQL文
- */
- res = PQexec(conn, "CREATE TABLE suite2db (clumn_1 varchar(16))");
- for (i = 0; i < PQntuples(res); i++) printf("%s\n", PQgetvalue(res, i, 0));
- PQclear(res);
- PQfinish(conn);
- printf("Content-type:text/html\n\n");
- printf("<HTML>\n");
- printf("MESSAGE : Success");
- printf("</HTML>\n");
- return 0;
} - 作成したソースファイルに適当な名前を付けてファイルに保存して下さい。ここでは例としてdbtest.cという名前を付けます。
- LinuxにPostgreSQLをインストールしたコンピュータ上で、libpq.aをスタティックにリンクさせてdbtest.cをコンパイルして下さい。
Libpqインターフェースのヘッダファイルが /usr/local/pgsql/include ディレクトリにあり、 libpq.aのパスが /usr/local/pgsql/lib/libpq.a の場合、以下のコマンドでコンパイル出来ます。
gcc -I/usr/local/pgsql/include dbtest.c -lcrypt /usr/local/pgsql/lib/libpq.a - コンパイルして出来たCGI (a.out) に適当な名前を付け、管理者用アカウント(admin)を使用してWebARENA Suite2サーバーの /cgi-bin ディレクトリに転送して下さい。
- 転送したCGIのパーミッションを 700(rwx------) に設定して下さい。
- CGIをブラウザから呼び出して実行させて下さい。
正しく実行されるとブラウザの画面に「MESSAGE : Success」と表示され、テーブルが作成されます。 - 管理ツール「phpPgAdmin」にログインして、「suite2db」という名前のテーブルが作成されていることを確認して下さい。
実行させるSQL文を変えればデータベースに対し任意の操作を行うことが出来ます。