0

.sql ファイルを postgres DB (Cent OS) にインポートしようとしている私の PHP スクリプト。

使用する PHP スクリプトから DB に接続するには、次のようにします。

$sCMD = 'psql -p '.$aDSNInfo['port'].' -d '.$aDSNInfo['database'];
$aDescriptors = array(
    0 => array('pipe', 'r'),
    1 => STDOUT, 
    2 => STDERR
);
$ahPipes = null;
$hProcess = @proc_open($sCMD, $aDescriptors, $ahPipes);
if (!is_resource($hProcess)) fail('unable to start pgsql');

エラーが表示されます:「pgsqlを開始できません」。

また、proc_open から @ 記号を削除すると、エラー メッセージが表示されます....

" proc_open() [<a href='function.proc-open'>function.proc-open</a>]: Descriptor item must be either an array or a File-Handle in <b>/home/nominati/public_html/Nominatim/utils/setup.php"

$aDescriptors はすでに配列ですが。ユーザー権限に関連する問題はありますか?

前もって感謝します。

4

1 に答える 1

2

stderr を削除してみてください:

$aDescriptors = array(
    0 => array('pipe', 'r'),
    1 => STDOUT
//    2 => STDERR
);

理由はわかりませんが、これにより私の Debian ボックスで動作するようになりました。

于 2013-01-22T15:51:04.177 に答える