ログイン
新規登録
パスワード紛失
メインメニュー
フォーラム
オンライン状況
49 人のユーザが現在オンラインです。 (41 人のユーザが フォーラム を参照しています。)
登録ユーザ: 4
ゲスト: 45
yamakou, a-003, 55eccube, kikunobu, もっと...
広告
質問 > その他 > PostgreSQLでUNIXドメインソケット接続での使用は可能か
その他
新規スレッドを追加する

EC-CUBE ASP登場
スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
ゲスト
投稿日時: 2007-2-4 12:00
対応状況: −−−
PostgreSQLでUNIXドメインソケット接続での使用は可能か
はじめまして。EC-CUBEをPostgreSQL7.4.6がインストールされているレンタルサーバで使用したいと思い、インストーラーを進めていったのですが、以下のエラーが表示されて先に進めません。

>> DB Error: connect failed
[nativecode=Unable to connect to PostgreSQL server: could not connect to server:
Is the server running on host "127.0.0.1" and accepting TCP/IP connections on port 5432?]

DBやユーザは作成していますが、どうも使用しているレンタルサーバではPostgreSQLのTCP/IP経由接続は許可しておらず、UNIXドメインソケット接続のみ許可しています。このような状況でインストールする方法がありましたらお願いいたします。
nanasess
投稿日時: 2007-2-4 17:10
対応状況: −−−
仙人
登録日: 2006-9-9
居住地: 大阪
投稿: 771
Re: PostgreSQLでUNIXドメインソケット接続での使用は可能か
大河内です。

インストール時に DBホストを 127.0.0.1 ではなく localhost を指定してもインストールできませんでしょうか?
ゲスト
投稿日時: 2007-2-4 20:34
対応状況: −−−
Re: PostgreSQLでUNIXドメインソケット接続での使用は可能か
大河内様

>インストール時に DBホストを 127.0.0.1 ではなく localhost を指定してもインストールできませんでしょうか?

localhostに変更しても同様のエラーメッセージが表示されました。また、dbサーバの項目を空白にしてみましたが、「※ DBサーバが入力されていません。」と表示されてインストールの先に進めません。

回避方法がありましたらご教授お願いいたします。


※利用しているレンタルサーバのMySQLのバージョンが4.0なため、PostgreSQLで利用可能になれば助かります。
ゲスト
投稿日時: 2007-2-4 21:01
対応状況: −−−
Re: PostgreSQLでUNIXドメインソケット接続での使用は可能か
追記です。

DBサーバ名に「unix()」と入力すると、従来とは違うエラーメッセージが表示されました。

>> DB Error: connect failed
[nativecode=Unable to connect to PostgreSQL server: FATAL: database ":/データベース名" does not exist]


DBサーバ名に「ユーザ名:パスワード@unix()/データベース名」と入力すると以下のメッセージが表示されました。
>> DB Error: connect failed
[nativecode=Unable to connect to PostgreSQL server: FATAL: Password authentication failed for user "ユーザ名"]

ここまでで行き詰まっています。
nanasess
投稿日時: 2007-2-4 22:05
対応状況: −−−
仙人
登録日: 2006-9-9
居住地: 大阪
投稿: 771
Re: PostgreSQLでUNIXドメインソケット接続での使用は可能か
大河内です。

よくよく考えてみれば、PostgreSQL7.x と PHP を連携させる場合は、postgresql.conf で tcpip_socket = true にする必要があり、これが不可能なのであれば、EC-CUBE はおろか、その他の PHPプログラムとの連携も不可能なはずです。

引用:

DBやユーザは作成していますが、どうも使用しているレンタルサーバではPostgreSQLのTCP/IP経由接続は許可しておらず、UNIXドメインソケット接続のみ許可しています。このような状況でインストールする方法がありましたらお願いいたします。


とのことですので、 tcpip_socket = false の状態のようです。
この状況では、PostgreSQL と PHP の連携は、どうやっても不可能です。レンタルサーバー業者に、どのような設定で連携が可能かよく確認すると良いと思います。

また、PostgreSQL と PHP の連携が可能であれば、簡単で良いので接続が成功する PHP スクリプトをご投稿ください。
それを元に、EC-CUBE のインストールが行えるようにソースを修正することはできると思います。
ゲスト
投稿日時: 2007-2-4 22:56
対応状況: −−−
Re: PostgreSQLでUNIXドメインソケット接続での使用は可能か
大河内様

素早い御回答ありがとうございます。単純ですが、接続チェック用に利用しておりますPHPスクリプトを投稿します。

ここから-------------------------
<META http-equiv="Content-Type" content="text/plane; charset=EUC-JP">
<?php
// PostgreSQL connect
$conn = pg_connect("dbname=データベース名 user=データベースユーザ名 password=パスワード");

if(!$conn){
die ("PostgreSQL connect FALSE!\n");
}
else{
echo "PostgreSQL connect OK!\n";
}
@pg_close($conn);
?>
ここまで-------------------------

このスクリプトを実行すると、
"PostgreSQL connect OK!"
と表示されます。

なお、"host=localhost"を指定しますと、

Warning: pg_connect(): Unable to connect to PostgreSQL server: could not connect to server: Is the server running on host "localhost" and accepting TCP/IP connections on port 5432? in "ディレクトリ名"/test.php on line 4
PostgreSQL connect FALSE!

とのエラーが表示されます。

またphpPgadminがレンタルサーバで準備されていましたので、動作確認を行いました。テーブルの新規作成とINSERTは可能でした。
nanasess
投稿日時: 2007-2-5 0:21
対応状況: −−−
仙人
登録日: 2006-9-9
居住地: 大阪
投稿: 771
Re: PostgreSQLでUNIXドメインソケット接続での使用は可能か
大河内です。

どうやら僕の認識違いのようです。。
pg_connect で host を省略すると 接続できるようですね。。

EC-CUBE では、 DB接続に Pear DB を使用していますので、Pear のマニュアルやらソースを眺めてみました。

http://pear.php.net/manual/ja/package.database.db.intro-dsn.php

上記マニュアルを見ると、下記構文の DSN が使用できそうです。

phptype(syntax)://user:pass@protocol(proto_opts)/database

しかし、現在の EC-CUBE では、上記構文が使用できず、いくつか修正が必要です。

1. html/install/index.php 215行目の $dsn に代入される書式を上記 DSN に変更。
2. data/conf/core.php 22行目の DEFAULT_DSN の定数値を上記 DSN に変更。

これで動作すると思いますが未検証です。
はずしていたらすみません。
DSN をハードコーディングしてしまうのも有りだと思います。
ハードコーディングした場合、インストール時に入力する DB設定の項目は無視されるので、適当な値を入れておけば良いと思います
ゲスト
投稿日時: 2007-2-5 13:56
対応状況: −−−
Re: PostgreSQLでUNIXドメインソケット接続での使用は可能か
大河内様

上記の内容に沿っていくつか書き換えました。


html/install/index.php
87,180,480,687行の

$dsn = $arrRet['db_type']."://".$arrRet['db_user'].":".$arrRet['db_password']."@".$arrRet['db_server'].":".$arrRet['db_port']."/".$arrRet['db_name'];
を、
$dsn = $arrRet['db_type']."://".$arrRet['db_user'].":".$arrRet['db_password']."@". "unix()"."/".$arrRet['db_name'];
に書き換えました。

また
data/conf/core.php
21行付近の
define ("DEFAULT_DSN", DB_TYPE . "://" . DB_USER . ":" . DB_PASSWORD . "@" . DB_SERVER . ":" .DB_PORT . "/" . DB_NAME);

define ("DEFAULT_DSN", DB_TYPE . "://" . DB_USER . ":" . DB_PASSWORD . "@" . "unix()" . "/" . DB_NAME);
に書き換えると途中、DB.phpにてエラーが起きますが、インストールが完了しました。

とりあえずショップの表示と管理画面が動作しておりますのでこれで確認を進めていきます。

解決までの道筋についてご教授頂き有難うございました。

※他には、インストーラーのサーバ名に''を入れた後、install.incを書き換えるという方法があるようです。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

 
EC-CUBEダウンロード
正式版(zip版) 正式版(tar.gz版)
パートナー募集
構築事例募集
EC-CUBE寄付支援プロジェクト
リンク
統計情報
総メンバー数は4,867名です
総投稿数は31,478件です

投稿数ランキング
1
seasoft
5033
2
AMUAMU
917
3 ramrun 789
4
nanasess
771
5
homan
547
6 tonton 436
7
kishik
381
8
tao_s
355
9
ecbg
311
10 x41 299
11
DDR
259
12 arts 229
13 pineray 209
14
kvex2004
205
15
flealog
191
16
55eccube
163
17
DELIGHT
149
18 nanakoko 139
19
mahalo_c
136
20 popo 134
21 kurobon 122
22
yokoshima
113
23
Oba
106
24
takoyaki
105
25 lvsa 104
26
lucky7
101
27 mi-taro 100
28 it3 92
29
sakurai07
89
30 Masashige 89
31
kaoring777
89
32
illfrog300
88
33
ryo
86
34 tao 82
35 tmtqn543 82
36 mkhkck 79
37 bott 78
38 hunterman 78
39
saratoga
76
40
asayama
70
41
vexit
70
42
osamusi
66
43
lockon_admin
65
44 kana 64
45
kishimoto
63
46
hogehoge
63
47 harutom 63
48 fsv_g2 61
49 NSX 61
50 fukuma 60
Copyright© LOCKON CO.,LTD. All Rights Reserved.