テストデータを挿入するためのテーブルを作成しますっと。まずはまあ、自前アプリケーションで使うのを想定した感じのやつ、適当でいいんだけどとりあえずおんなじでいいやw データは気合でコピーしようね。
Conversation
Notices
-
やきたま :sabakan: (yakitama@mstdn.yakitamago.info)'s status on Wednesday, 02-Jan-2019 10:02:21 JST
やきたま :sabakan:
-
やきたま :sabakan: (yakitama@mstdn.yakitamago.info)'s status on Wednesday, 02-Jan-2019 10:26:36 JST
やきたま :sabakan:
あ、そもそも PostgresSQL の CREATE TABLE 構文、なんか MySQL と違う気がする。
-
やきたま :sabakan: (yakitama@mstdn.yakitamago.info)'s status on Wednesday, 02-Jan-2019 10:30:08 JST
やきたま :sabakan:
content 型ってのが気になる…… PostgreSQL 専用なのかな……?
-
やきたま :sabakan: (yakitama@mstdn.yakitamago.info)'s status on Wednesday, 02-Jan-2019 10:35:26 JST
やきたま :sabakan:
MySQL と型とカラム名を書く順番が逆だから反対に見てましたね、text 型だこれ。
-
やきたま :sabakan: (yakitama@mstdn.yakitamago.info)'s status on Wednesday, 02-Jan-2019 11:18:28 JST
やきたま :sabakan:
> 一般に、DSNはPDOドライバ名の後にコロンが続き、 各PDOドライバに固有の接続構文が続きます。
http://jp2.php.net/manual/ja/pdo.construct.phpPDO ドライバ名ってどこに記載があるんだ……? 例えば MySQL ドライバだと
http://jp2.php.net/manual/ja/ref.pdo-mysql.php
だけど、dsn に mysql って書いてね、みたいな指定はどこにもないんだよね。 -
やきたま :sabakan: (yakitama@mstdn.yakitamago.info)'s status on Wednesday, 02-Jan-2019 11:22:45 JST
やきたま :sabakan:
もいっこ階層もぐらないとだめだった。MySQL は ここ http://jp2.php.net/manual/ja/ref.pdo-mysql.connection.php に書いてあるし、PostgreSQL なら http://jp2.php.net/manual/ja/ref.pdo-pgsql.connection.php これだ。
-
やきたま :sabakan: (yakitama@mstdn.yakitamago.info)'s status on Wednesday, 02-Jan-2019 12:33:39 JST
やきたま :sabakan:
?
PDO Exception: could not find driver
-
やきたま :sabakan: (yakitama@mstdn.yakitamago.info)'s status on Wednesday, 02-Jan-2019 12:34:49 JST
やきたま :sabakan:
なるほど、この子がいるのかな。
php7.0-pgsql -
やきたま :sabakan: (yakitama@mstdn.yakitamago.info)'s status on Wednesday, 02-Jan-2019 12:35:53 JST
やきたま :sabakan:
なんで PHP 7.0 なの最新使えよというツッコミはナシでお願いします(そのうち 18.04 になったときに勝手に上がるはず)
-
やきたま :sabakan: (yakitama@mstdn.yakitamago.info)'s status on Wednesday, 02-Jan-2019 12:36:56 JST
やきたま :sabakan:
そういえばこのあたりもなんとかしたいよね、PHP のバージョンに依存するようなアプリケーションは動かしてないんだから、できるだけ最新を追っかけたいのだけど、リポジトリに準備してくれないんだよね。ソースからビルド? アップデートがめんどくさくなって放置されるのが目に見えてるのでやりません。
-
やきたま :sabakan: (yakitama@mstdn.yakitamago.info)'s status on Wednesday, 02-Jan-2019 12:43:54 JST
やきたま :sabakan:
ん? Connection Refused ってのは誰が弾いたんだ……?
-
やきたま :sabakan: (yakitama@mstdn.yakitamago.info)'s status on Wednesday, 02-Jan-2019 12:47:36 JST
やきたま :sabakan:
iptables はシロ(のはず)なので、postgres が他のホストからの接続を受け付けないように設定されている可能性か。
-
やきたま :sabakan: (yakitama@mstdn.yakitamago.info)'s status on Wednesday, 02-Jan-2019 12:49:14 JST
やきたま :sabakan:
それっぽいのはこれか。未指定の場合は localhost になるらしいので。
#listen_addresses = 'localhost' -
やきたま :sabakan: (yakitama@mstdn.yakitamago.info)'s status on Wednesday, 02-Jan-2019 12:51:49 JST
やきたま :sabakan:
conf.d ディレクトリ内のファイルをインクルードするように postgresql.conf が設定されているので、ユーザーで上書きする設定はこちらに置いちゃいましょうか。
-
やきたま :sabakan: (yakitama@mstdn.yakitamago.info)'s status on Wednesday, 02-Jan-2019 13:04:07 JST
やきたま :sabakan:
それっぽい IP アドレス(ホストアドレス部が 0 な)に、続けて /24 みたいにネットワークアドレスのビット数を指定する感じで書いてみたけど、うまく反映されないですねえ。ドキュメントを見る限り、ネットワークのホスト全部からのアクセスを許可する場合にどういうふうに書くべきかは明示的に示されていないので、試行錯誤するしかないかなあ。
https://www.postgresql.jp/document/10/html/runtime-config-connection.html -
やきたま :sabakan: (yakitama@mstdn.yakitamago.info)'s status on Wednesday, 02-Jan-2019 13:10:10 JST
やきたま :sabakan:
あー、なるほど、これは「どのホストからのアクセスを許可するか」の設定じゃなくて、「どのネットワークインターフェースでの接続を許可するか」の設定であって、つまり設定する IP アドレスはサーバーが持つアドレスになるんだ。DHCP だったらどうすんだろな? ホスト名にすりゃいいのか。
-
やきたま :sabakan: (yakitama@mstdn.yakitamago.info)'s status on Wednesday, 02-Jan-2019 13:11:46 JST
やきたま :sabakan:
次はこんなエラーに変化。こちらはどうやら認証関係っぽいよね、つまり PostgreSQL への接続はできたっぽい。
no pg_hba.conf entry for host "接続元 IP アドレス", user "オレオレ", database "接続先データベース", ssl on -
やきたま :sabakan: (yakitama@mstdn.yakitamago.info)'s status on Wednesday, 02-Jan-2019 13:17:23 JST
やきたま :sabakan:
pg_hba.conf について調べてみると、postgresql.conf 内で hba_file っていうパラメータに設定されたファイル名であることが分かり、それをさらにドキュメントで調べてみると「ホストベース認証」、接続元ホストを信用するタイプの認証方式と想像。とりあえず中身見てみますか。
https://www.postgresql.jp/document/10/html/runtime-config-file-locations.html
-
やきたま :sabakan: (yakitama@mstdn.yakitamago.info)'s status on Wednesday, 02-Jan-2019 13:31:18 JST
やきたま :sabakan:
pg_hba.conf や postgresql.conf を読んでみて、ホストベース認証に関してはどうやら pg_hba.conf を直接いじるような想定になっているらしいので、追記しましょうかね。追記場所も pg_hba.conf のコメントにちゃんと指定されているし。
-
やきたま :sabakan: (yakitama@mstdn.yakitamago.info)'s status on Wednesday, 02-Jan-2019 13:34:08 JST
やきたま :sabakan:
よーし、ここまでのサーバーコンフィグで PHP クライアントから接続できるようになった。設定は一貫してローカルネットワークからの接続しか許可していないし、一応そのネットワークを通す間も ssl を要求するように設定したはずなので、まあ問題ないかな、ということで。
-