1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【PostgresSQL】WindowsPCのSQLサーバーの立て方

Last updated at Posted at 2022-11-23

インストール

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 プロセスアクティブ化サービス
  • インターネットインフォメーションサービス
  • アプリケーション開発機能 - いくつかのアイテム

WIN有効か.PNG

正常にインストールされれば、IIS(インターネットインフォメーションサービス)マネージャーが使用できる。Windowsマークの検索から、IISを検索して、起動する。

6. IISマネージャーで外部からの信号をGETするアプリを設定する

インターネットインフォメーショサービス(IIS)マネージャーで以下のアプリケーションプールを追加する。

アプリケーションプールの名前 = PhpAppPool

IIS設定1.PNG

CGI or FastCGIのアプリケーションを追加で、以下のパスを追加する。

C:\Program Files\php-8.1.13-nts-Win32-vs16-x64\php-cgi.exe

IIS設定2.PNG

サイトのDefault Web Siteを右クリックし、アプリケーションの追加から、Webアプリケーションのエイリアスとパスを追加する。

エイリアス = php
物理パス = C:\php

IIS設定3.PNG

補足
ここで設定したフォルダに.phpプログラムを追加することで、複数のサーバープログラムを構成できます。

7. ポート80と5432を開く。

設定 -> ネットワークとインターネット -> Windows ファイアウォール -> 詳細設定からデータサーバーで使用するポート80と5432をファイアーウォールから開く。

WINポート1.PNG

作成した規則をクリックして、ポートが受信した際にデータを受け取るプログラムを登録する。

補足
ポートはデフォルトで開いていることもあるため、設定しなくても問題なく接続されることもあります。

8. webアプリケーションのフォルダにIISユーザー権限を付与する。

下記のパスで、フォルダ名 -> 右クリック -> プロパティを開く。
セキュリティのタブを押し、編集を押す。
追加で、IUSRとIIS_IUSRSを追加する。

物理パス = C:\php

IIS_セキュリティ.PNG

8.1 MicroSoft C++のインストール

PHPの実行にライブラリが足りない場合がある。
下記コマンドで正常にphp versionが表示されたらOK。

php -v

そうでない場合は、下記手順によりMicrosoft C++をインストールする

  1. 下記を開く
    https://visualstudio.microsoft.com/ja/downloads/
  2. 下部の「その他の Tools、Frameworks、そして Redistributables」を開く
  3. Microsoft Visual C++ Redistributable for Visual Studio 2022をダウンロードする
    postgresSQL11.PNG
  4. ダウンロードファイルを実行して、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が立ち上がる。

start.bat
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サーバーを立てる方法を紹介した。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?