バージョン選択

フォーラム

メニュー

オンライン状況

72 人のユーザが現在オンラインです。 (55 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 72
もっと...

サイト内検索

質問 > その他 > PostgreSQL UNIXドメインソケット (EC-CUBE 4.2)

その他

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
seasoft
投稿日時: 2023/8/20 14:24
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
PostgreSQL UNIXドメインソケット (EC-CUBE 4.2)
[EC-CUBE] 4.2 (commit ac096e501852104f6e38a474aad1afb01fdf907f)
[レンタルサーバ] ローカル WSL
[OS] Ubuntu 20.04.6 LTS
[PHP] 7.4.33 -> 8.2.9(FPM) (インストール後に PHP 8 を要求されるようなので、途中からバージョンを変えました。)
[データベース] PostgreSQL 12.15
[WEBサーバ] Apache 2.4

EC-CUBE 4.0 では、たしかデータベースのホスト名を localhost で設定すると UNIX ドメインソケットで疎通したと思うのですが、EC-CUBE 4.2 では 127.0.0.1 に名前解決されて TCP が使われる様子です。
訂正(2023-08-21): EC-CUBE 4.0 も駄目そうです。リビジョンにより違うかもしれませんが。

以下のエラーメッセージが表示されます。
引用:
エラー データベースに接続できませんでした。An exception occurred in the driver: SQLSTATE[08006] [7] FATAL: no pg_hba.conf entry for host "127.0.0.1", user "eccube", database "ec42", SSL on FATAL: no pg_hba.conf entry for host "127.0.0.1", user "eccube", database "ec42", SSL off


UNIX ドメインソケットで疎通させるには、何を入力したら良いでしょうか?

ちなみに空欄だと、データベースの初期化画面には進み、以下のエラーとなります。
引用:
ERROR An exception occurred in the driver: SQLSTATE[08006] [7] could not translate host name "ec42" to address: Name or service not known


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

seasoft
投稿日時: 2023/8/20 17:27
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: PostgreSQL UNIXドメインソケット (EC-CUBE 4.2)
データベースのホスト名を「/var/run/postgresql」にすると、入力チエック時の DB 接続は通る様子ですが、データベースの初期化画面で、以下のエラーとなります。
引用:
ERROR Malformed parameter "url".


どんな "url" が生成されているのですかね・・・
調べたら、以下な感じですね。
pgsql://<dbuser>:<dbpass>@/var/run/postgresql/<dbname>


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

seasoft
投稿日時: 2023/8/20 17:43
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: PostgreSQL UNIXドメインソケット (EC-CUBE 4.2)
空欄だと "url" は以下ですね。
pgsql://<dbuser>:<dbpass>@<dbname>


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

seasoft
投稿日時: 2023/8/20 18:49
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: PostgreSQL UNIXドメインソケット (EC-CUBE 4.2)
vendor/doctrine/dbal/src/DriverManager.php 内で $url を下記に書き換えると続行できました。
pgsql://<dbuser>:<dbpass>@%2Fvar%2Frun%2Fpostgresql/<dbname>


.env は、以下の記述でした。
DATABASE_URL=pgsql://<dbuser>:<dbpass>@<dbname>

または
DATABASE_URL=pgsql://<dbuser>:<dbpass>@/var/run/postgresql/<dbname>


vendor/doctrine/dbal/src/DriverManager.php を書き戻すと、システムエラーでした。

.env を、以下に書き換えると、再び動作しました。
DATABASE_URL=pgsql://<dbuser>:<dbpass>@%2Fvar%2Frun%2Fpostgresql/<dbname>


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

seasoft
投稿日時: 2023/8/20 19:17
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: PostgreSQL UNIXドメインソケット (EC-CUBE 4.2)
つまり、「データベースの設定」画面の「データベースのホスト名」に入力された値は
vendor/doctrine/dbal/src/DriverManager.php に渡るまで (.env への保存時?) に URL エスケープする必要がありそうに思います。

また、「データベースのホスト名」を空欄にした場合の動作が、「データベースの設定」画面とそれ以降(DBAL?)で異なるようなので、同じくなるように期待します。それで、UNIX ドメインソケットで疎通するのが望ましいと思います。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

mcontact
投稿日時: 2023/8/21 9:19
対応状況: −−−
登録日: 2022/1/22
居住地:
投稿: 1296
Re: PostgreSQL UNIXドメインソケット (EC-CUBE 4.2)
https://qiita.com/tao_s/items/5d316f83c2646eae9dda


----------------
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
EC-CUBEインテグレートパートナー【ゴールド】ランク
M&I Works
URL: https://miworks.biz/
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

seasoft
投稿日時: 2023/8/21 11:59
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: PostgreSQL UNIXドメインソケット (EC-CUBE 4.2)
引用:

mcontactさんは書きました:
https://qiita.com/tao_s/items/5d316f83c2646eae9dda

これは、.env を書き換える話題のようにお見受けいたします。
.env を手動で書き換える対応は、既に書いた方法で解決済みです。

残った課題は、WEB インストーラーが入力された「データベースのホスト名」を、.env にどう反映すべきかという観点でした。

その記述、WEB インストーラーで生成できませんよね? と。


あと、「postgresql[DB名]」「mysql.sock[DB名]」は不自然ですね。何かセパレーターとか必要ありませんか?
これについては、tao さんに直接絡んできます。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

mcontact
投稿日時: 2023/8/21 17:25
対応状況: −−−
登録日: 2022/1/22
居住地:
投稿: 1296
Re: PostgreSQL UNIXドメインソケット (EC-CUBE 4.2)
> その記述、WEB インストーラーで生成できませんよね? と。
WWBインストールにてとは書いてなかったので、PostgreSQLのsocket接続が出来ないので困っているのかと思いました。
誤解がありましたら、すいませんでした。


----------------
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
EC-CUBEインテグレートパートナー【ゴールド】ランク
M&I Works
URL: https://miworks.biz/
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,904名です
総投稿数は110,006件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1296
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.