Cobalt Qube3J の設定に関するメモ(2002/01/16)
PHP: Hypertext Preprocessor は、HTMLファイル 内に記述するタイプのスクリプト言語です。通常のCGIとして使用できますが、PHPモジュールをApacheサーバーに組み込むことにより、Perl/CGIと比較して処理速度の高速化、サーバー負荷の低減が可能です。
記述する言語形態は、Perl に類似しておりデータベースアクセスも非常に簡単で、PostgreSQL/MySQL/Oracle/Sybaseといった各種データベースとの連携に優れています。また、XML/PDF/IMAP/LDAP等各種機能をサポートするため、広範なWebアプリケーションを容易に作成することが可能な言語です。詳しくは、日本PHPユーザ会か、PHPでね。また、Cobalt Qube3Jには、PHP4.0(php-4.0.3pl1-C1q3)が既にインストール済みなので、ここでは PHP のインストールの説明は省きます。ちなみにこんな感じ。
コマンドラインから PostgreSQL を操作してみるサンプルを実行してみます。
#!/usr/bin/perl
use Pg;
$dbname = "hogedb";
$conn = Pg::connectdb("dbname=$dbname");
$res = $conn-> exec("select * from t1");
print "name telno email\n";
print "--------------------------------------\n";
while(@item = $res-> fetchrow) {
print "@item[0] @item[1]";
print ("\n");
}
PHPの動作を確認するためのスクリプトを実行してみます。
<?
phpinfo();
?>
Web上からアクセスできるための設定を行います。まず、Webアクセスユーザである httpd のユーザが Postgres を使える様に設定します。
# su - postgres
[postgres]$ createuser httpd
Postgres + PHPが実行できるように php.ini を編集します。編集終了後に、Apache を再起動します。
# vi /etc/httpd/php.ini
;UNIX Extensions
extension=pgsql.so ←コメントを外す
# /etc/rc.d/init.d/httpd restart
下記のスクリプトをサーバに設置し実行してみます。実行結果が表示されれば問題ありません。
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=EUC-JP">
<title>
簡易アドレス帳
</title>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<h1>簡易アドレス帳</h1>
<br>
<hr>
<br>
<?
/* Global variables. */
$dbname = "hogedb"; /* DB name of PostgreSQL. */
$tbname = "t1"; /* table name of PostgreSQL. */
/* データベースとの接続 */
$conn = pg_Connect("dbname=$dbname");
if (!$conn){
echo "データベースの接続でエラーが発生しました<BR>\n";
exit;
}
/* SQL文の発行 */
$sql = "select * from $tbname";
$result = pg_Exec($conn, $sql);
if (!$result) {
echo "検索でエラーが発生しました<BR>\n";
exit;
}
$num = pg_numrows($result);
echo "<TABLE BORDER=\"1\">\n";
echo "<TR><TD>名前</TD><TD>電話番号</TD></TR>\n";
for ($i = 0; $i < $num; $i++) {
$row = pg_fetch_row($result, $i);
echo "<TR><TD>" . $row[0] . "</TD><TD>" . $row[1] . "</TD></TR>\n";
}
echo "</TABLE>\n";
?>
</BODY>
</HTML>
PHPの入門に最適です。
PostgreSQL + Apache/PHP のインストール
インストールの詳しい事例が書かれています。