バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

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

その他

新規スレッドを追加する

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


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

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

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


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

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


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

seasoft
投稿日時: 2023/8/20 17:27
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7369
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 14:24
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7369
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
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

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


 



ログイン


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

統計情報

総メンバー数は93,700名です
総投稿数は111,076件です

投稿数ランキング

1
seasoft
7369
2
468
3217
3
AMUAMU
2712
4
nanasess
2318
5
umebius
2085
6
yuh
1857
7
h_tanaka
1756
8
red
1574
9
mcontact
1466
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
804
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.