#php #python #postgresql #cmd
#php #python #postgresql #cmd
Вопрос:
Я пытаюсь восстановить базу данных (файл «.backup») с помощью pg_restore с помощью cmd launch с PHP-кодом, но это не работает.
1- Я передаю в свою PHP-переменную весь cmd-код
$cmd="cmd /c C:/Program Files/PostgreSQL/9.1/bin/pg_restore.exe -d ".$_POST['data2']." -i -h localhost -p 5432 -U ********** D:/backup/voirie.backup";
2- Я запускаю его
exec($cmd);
Мой php работает без результата
На моем сервере процесс запущен
Другая информация
- Вместо exec () я тестировал с system () и passthru ()
- Я тестировал создание пакетного файла из моего php. Этот пакетный файл отлично работает при запуске его на сервере, но не из моего PHP-файла
- Сгенерированный код в $ cmd был протестирован непосредственно из CMD на сервере, и он работает
- Для других кодов на этом сервере я использую этот, который работает нормально:
system("cmd /c C:/Python35-32/python.exe D:/python/serpent.py");
- Я тестировал с этими кавычками без результата :
$cmd='cmd /c "C:/Program Files/PostgreSQL/9.1/bin/pg_restore.exe" -d '.$_POST['data2'].' -i -h localhost -p 5432 -U ********** D:/backup/voirie.backup';
Комментарии:
1. Вероятно, проблема в пространстве в
Program Files
. Закройте это и повторите попытку.2. Я пробовал это
$cmd="cmd /c C:/program files/PostgreSQL/9.1/bin/pg_restore.exe -d ".$_POST['data2']." -i -h ...
, это $ cmd =»cmd /c C:/Program Files/PostgreSQL/9.1/bin/pg_restore.exe -d «.$_POST[‘data2’].» -i -h …, this
$cmd=»cmd /c C:/program files/PostgreSQL/9.1/bin/pg_restore.exe -d «.$_POST[‘data2’].» -i -h … ` и это$cmd="cmd /c ""C:\program files\PostgreSQL\9.1/bin\pg_restore.exe -d "".$_POST['data2']." -i -h ...
без великолепного прогресса3. Это работает с этим на сервере с помощью командной оболочки
pg_restore -d provisoire -i -h localhost -p 5432 -U ********** D:/backup/voirie.backup
, но не с моим PHP, но через несколько секунд процесс останавливается4. Я бы использовал process monitor , чтобы увидеть, какой процесс действительно запущен, что он делает и почему происходит сбой.