インストール
1. PostgresSQLのインストール
以下のサイトからPostgresSQLのインストーラーをダウンロードして、実行する。
PostgresSQLコマンドを使用するため、”システム環境変数の設定”から変更して、下記のフォルダへパスを通す。
C:\Program Files\PostgreSQL\15\bin
2. Openjdkのダウンロード
以下のサイトから、任意のOpenJDKをダウンロードする。(例 JDK 19 etc)
任意のフォルダに置く。binの中にjava.exeなどがあり、merabase.jarを起動するときに使う。
C:\Program Files\jdk-19.0.1\bin
3. Metabaseのダウンロード
以下のサイトから、任意のMetabase.jarをダウンロードする。
任意のフォルダに置く。
"C:\Users\username\Documents\metabase\metabase.jar"
4. PHPのインストール
下記からPHPを任意のフォルダにダウンロードする。
C:\Program Files\php-8.1.13-nts-Win32-vs16-x64\php-cgi.exe
C:\Program Files\php-8.1.13-nts-Win32-vs16-x64\php-cgi.exe
フォルダの直下の以下のファイルのどちらかをコピーして、php.iniを作る。
php.ini-development
or
php.ini-production
php.iniの以下の部分をコメントアウトか無ければ追記する。
extension=php_pgsql.dll
5. IISを有効にする
コントロールパネル -> プログラム -> プログラムと機能 -> Windows の機能の有効化または無効化から、下記にチェックを入れて、インストールする。
- Windows プロセスアクティブ化サービス
- インターネットインフォメーションサービス
- アプリケーション開発機能 - いくつかのアイテム
正常にインストールされれば、IIS(インターネットインフォメーションサービス)マネージャーが使用できる。Windowsマークの検索から、IISを検索して、起動する。
6. IISマネージャーで外部からの信号をGETするアプリを設定する
インターネットインフォメーショサービス(IIS)マネージャーで以下のアプリケーションプールを追加する。
アプリケーションプールの名前 = PhpAppPool
CGI or FastCGIのアプリケーションを追加で、以下のパスを追加する。
C:\Program Files\php-8.1.13-nts-Win32-vs16-x64\php-cgi.exe
サイトのDefault Web Siteを右クリックし、アプリケーションの追加から、Webアプリケーションのエイリアスとパスを追加する。
エイリアス = php
物理パス = C:\php
補足
ここで設定したフォルダに.phpプログラムを追加することで、複数のサーバープログラムを構成できます。
7. ポート80と5432を開く。
設定 -> ネットワークとインターネット -> Windows ファイアウォール -> 詳細設定からデータサーバーで使用するポート80と5432をファイアーウォールから開く。
作成した規則をクリックして、ポートが受信した際にデータを受け取るプログラムを登録する。
補足
ポートはデフォルトで開いていることもあるため、設定しなくても問題なく接続されることもあります。
8. webアプリケーションのフォルダにIISユーザー権限を付与する。
下記のパスで、フォルダ名 -> 右クリック -> プロパティを開く。
セキュリティのタブを押し、編集を押す。
追加で、IUSRとIIS_IUSRSを追加する。
物理パス = C:\php
8.1 MicroSoft C++のインストール
PHPの実行にライブラリが足りない場合がある。
下記コマンドで正常にphp versionが表示されたらOK。
php -v
そうでない場合は、下記手順によりMicrosoft C++をインストールする
- 下記を開く
https://visualstudio.microsoft.com/ja/downloads/ - 下部の「その他の Tools、Frameworks、そして Redistributables」を開く
- Microsoft Visual C++ Redistributable for Visual Studio 2022をダウンロードする
- ダウンロードファイルを実行して、Microsoft C++をインストールする
9. 接続テスト
テスト用phpファイルをC:\php\post.phpへ置く。
<?php
$body = file_get_contents('php://input');
$json = json_decode($body, true);
$column1 = $json['column1'];
$column2 = $json['column2'];
$column3 = $json['column3'];
$conn = "host=localhost dbname=postgres user=postgres password=1";
$link = pg_connect($conn);
if (!$link) {
die('接続失敗'.pg_last_error());
}
$sql = "INSERT INTO ble_data (column1, column2, column3) VALUES ('".$column1."',".$column2.",".$column3.")";
$result_flag = pg_query($sql);
if (!$result_flag) {
die('INSERTクエリー失敗'.pg_last_error());
}
exit();
?>
下記コマンドを実行し、自身のパソコンで登録したwebアプリケーションpost.phpが正常に作動するか確認する。
curl -XPOST http://192.168.202.53/php/post.php -H "Content-Type:application/json" -d "{\"column1\":\"222\",\"column2\":111,\"column3\":333}"
phpのエラーはphp.iniに設定されているerror_logのファイルでも参照できる。
また、変数の中身など確認する場合は、以下のようにすることもできる。
define("Logfile","./log.txt");
$fh = fopen(Logfile, "a");
fwrite($fh, 変数など);
fclose($fh);
Postgresの設定
起動しているかどうかは、タスクマネージャーのサービスでPostgressqlを探せばわかる。PostgresSQLマネージメントツールであるPgadmin4でPostgresSQLサーバーのテーブルを作成する。以下の階層のTablesにデータを受け取るときに必要なテーブルやマスターテーブルを作成する。Viewsには、Tablesにあるデータを用いて、SQL文で処理を行い、データテーブルを作成する。
Servers/
└ PostgresSQL 15/
└ Database
└ postgres
└ Schemas
├ Tables
└ Views
metabaseの起動
下記batを実行するとmetabaseが起動し、localhost:3030にmetabseが立ち上がる。
cd "C:\Program Files\jdk-19.0.1\bin"
java -jar "C:\Users\keita_miyaoka\Documents\metabase\metabase.jar"
metabaseのパスワードのリセット方法
java -jar metabase.jar reset-password email@example.com
>> 成功[[1_7177fd86-a9b8-42ea-a46b-0ea297a83b18]]
下記にブラウザでアクセス
http://localhost:3000/auth/reset_password/1_7177fd86-a9b8-42ea-a46b-0ea297a83b18
まとめ
今回は、Windows PCへPostgresSQLサーバーを立てる方法を紹介した。