Ошибка при выполнении proc_open из сценария php для подключения к pgsql
Мой PHP-скрипт пытается импортировать файл.sql в postgres DB (Cent OS).
Для подключения БД из скрипта PHP он использует:
$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 - это уже массив. Это какая-то проблема, связанная с разрешениями пользователя?
Заранее спасибо.
1 ответ
Попробуйте удалить stderr:
$aDescriptors = array(
0 => array('pipe', 'r'),
1 => STDOUT
// 2 => STDERR
);
Я не знаю почему, но это позволило работать на моей коробке Debian.