install.txtによると、Apache2とPHPの組み合わせは推奨されていないそうですが、本番環境ではないのであえて無視して最新で行くことにします。
apacheのダウンロードページから最新版Apacheを入手します。2005/01/02時点では2.0.52が最新でした。
入手したファイルを実行します。
Installation Wizardが起動します。"Next"をクリックします。
Apache Licenceの画面ではライセンス条項を確認したうえ、"I accept the terms in the licence agreement"をチェックして、"Next"をクリックします。
"Read This First"では、文章を一読し、"Next"をクリックします。
"Server Information"では、このサーバーの情報を入力します。この環境はローカルのテスト環境のため、"Network Domain"には"localnet"を入力、"Administrator's Email Address"には、"administrator@localhost"を入力しています。
"Setup type"には"Typical"を選択します。
"Destination Folder"は変更せず、"Next"をクリックします。
インストールに必要な情報の入力が完了しました。"Ready to Install the Program"で、"Install"をクリックします。
WindowsXP SP2が適用されている場合、"Windowsセキュリティ重要な警告"が表示されることがあります。"ブロックを解除します"をクリックします。
"Installation Wizard Complete"の画面が表示されたら、"Finish"をクリックします。
"http://localhost/"にアクセスして、Apacheのテストページが表示されることを確認します。
apacheの設定
PHPをapacheに組み込んで使えるように、apacheを構成します。
"スタート" -> "プログラム"
-> "Apache HTTP Server 2.0.52"(バージョンによる)
->"Configure Apache Server"
->"Edit the Apache httpd.conf Configuration File"
を選択します。
...LoadModule php5_module "C:/php/php5apache2.dll"<-追加(172行周辺)...AddDefaultCharset EUC-JP<-変更(702行周辺)...AddType application/x-httpd-php .php <-追加(768行周辺)...PHPIniDir "C:/php" <-追加(最終行)
ユーザー用のhtmlファイルを置くフォルダは、デフォルトが"My Document\My Website"という設定になっているので、作成しておきます。
タスクバーのapacheアイコンをダブルクリックしてApache Service Monitorを起動し、apacheを再起動します。
"My Website"に、次のような内容のファイルを、phpinfo.phpという名前で作成します。
<?php phpinfo() ?>
"http://localhost/~ユーザー名/phpinfo.php"にアクセスして、PHPの構成情報が表示されることを確認します。
PostgreSQLのインストール
ダウンロードページから最新版PostgreSQL8.0を入手します。2005/01/02時点ではpostgresql-8.0.0-rc2-2-ja.zipが最新でした。
なお、cygwinがインストールされていて、Pathにcygwinのディレクトリが入っていると、インストールで警告が出ます。英語版のrc2では出なかったようですが、日本語版のrc2では出るようです。インストール前にcygwinのディレクトリをPathからはずしておいたほうがよいでしょう。
入手したファイルを解凍し、実行します。
インストールの注意事項に目を通し、"次へ"をクリックします。
開発環境ですので、すべてを選択します。現在位置は変更せず、"次へ"をクリックします。
ドメイン名、Windowsのアカウント、postgresのパスワードを入力して"次へ"をクリックします。
postgresというユーザーが存在しないので、"はい"をクリックして作成します。
指定したパスワードが単純な場合、ランダムな強いものと取り替えるかどうかを聞かれます。ここでは取り替えないため、"いいえ"をクリックします。状況に応じて判断して各自判断してください。
ユーザーが正常に作成されました。"OK"をクリックして進みます。
ロケールには "Japanese, Japan" "C"、エンコーディングには"EUC-JP"を選択します。このデータベースのスーパーユーザーとなるpostgres(Windowsのユーザーではありません)のパスワードを指定して、"次へ"をクリックします。Windowsのアカウントのpostgresとは別のパスワードを使うことが推奨されています。
ロケールに"C"以外を選択すると、PostgreSQLがおかしな挙動を示すことがあります。"C"以外を選択しないでください。
PL/pgsqlにチェックを入れて"次へ"をクリックします。
"貢献モジュールを可能にする"は、デフォルトのまま"次へ"をクリックします。必要に応じてモジュールにチェックを入れ、インストールしてください。
"PostGISの有効化"は、デフォルトのまま"次へ"をクリックします。必要に応じてチェックを入れてください。
以上で必要な情報の入力は終了です。"次へ"をクリックしてインストールします。
インストールが終了しました。"終わり"をクリックしてインストールを終了します。
PostgreSQLの稼動状況を確認するするため、
"スタート"->"プログラム"->"PostgreSQL 8.0.0-rc2"->"pgAdmin III"
を選択してpgAdminⅢを起動します。
"PostgreSQL Database server"をダブルクリックします。
postgresユーザーのパスワードを入力し、サーバーに接続します。
サーバーに接続できることを確認し、pgAdminⅢを終了します。
コマンドラインからPostgreSQLのコマンドが実行できるよう、Pathに"C:\Program Files\PostgreSQL\8.0.0-rc2\bin"を追加しておきます。PostgreSQLのバージョンによってディレクトリが変わりますので、適宜読み替えてください。
初期設定とテスト
最初にユーザーとデータベースを作成します。
C:>createuser -a -d --username=postgres --pwprompt ユーザー名
could not find a "createuser" to execute
Enter password for new user: <-作成するユーザーのパスワードを入力
Enter it again: <-作成するユーザーのパスワードを再度入力
Password: <-postgresのパスワードを入力
CREATE USER
C:>createdb --encoding=EUC-JP --owner=ユーザー名 --username=ユーザー名 データベース名
could not find a "createdb" to execute
Password: <-ユーザーのパスワードを入力
CREATE DATABASE
C:>
次にテストテーブルを作成します。
次のような内容のファイルを、pg_test.sqlという名前で作成します。
create table shinamono (hinmei text, nedan integer);
insert into shinamono values ( 'orange', 100 );
insert into shinamono values ( 'apple', 200 );
psqlコマンドでテーブルを作成します。ユーザー名、データベース名は各自の環境にしたがって読み替えてください。
C:>psql -f pg_test.sql -h localhost -U ユーザー名 データベース名
could not find a "psql" to execute
パスワード:<-パスワードを入力
could not find a "psql" to execute
CREATE TABLE
INSERT 17273 1
INSERT 17274 1
C:>
次のような内容のファイルを、"My Document\My Website"に"pg_test.php"という名前で作成します。データベース名、ユーザー名、パスワードは各自の環境に従って読み替えてください。
<?php
$hostname = "localhost"; // DB Host
$sql = "select * from shinamono";
$db_name = "データベース名";
$db_user = "ユーザー名";
$db_password = "パスワード";
if( !$pg_con=pg_connect( "host=$hostname" . " " .
"dbname=$db_name" . " " .
"user=$db_user" . " " .
"password=$db_password" ) ) {
print "Error : failed to connect to ${hostname}<br>";
exit;
}
if(!$result=pg_exec($sql) ){
print "Error : could not execute SQL.<br>";
exit;
}
$row=pg_numrows($result);
$clm=pg_numfields($result);
for( $i=0 ; $i < $row ; $i++ ){
for( $j=0 ; $j < $clm ; $j++ ) {
print pg_fieldname( $result , $j )." = ";
print pg_result( $result , $i , $j ).":";
}
print "<br>";
}
pg_freeresult($result);
pg_close($pg_con);
?>
ブラウザで、"http://localhost/~ユーザー名/pg_test.php"にアクセスし、次のように表示されることを確認します。
以上でインストール終了です。