前提・実現したいこと
PostgreSQLのリストアをPHPから実行できるようにしたいのですが上手くいきません。
発生している問題・エラーメッセージ
shell_exec()のエラーメッセージを出そうと思いソースコードのように書いているのですが何も表示されません。
私の書き方が悪いのでしょうか。エラーメッセージや実行結果などの返り値の見方も教えていただきたいです。
該当のソースコード
PHP
1<?PHP 2$restoredate = filter_input(INPUT_POST, 'date'); 3$cmd = 'USER="postgres" 4DBNAME="restoretest" 5 6 7dropdb -U $USER $DBNAME 8 9createdb -U $USER $DBNAME 10 11psql -U $USER -d $DBNAME -f "/var/backup/project-20200820.sql" 12 13exit $?'; 14 15$message = shell_exec($cmd ); 16echo $message; 17?>
psql -U $USER -d $DBNAME -f "/var/backup/project-20200820.sql"のところだけ上手くいきません
試したこと
db削除(dropdb)、作成(createdb)のみで行うと正常に実行されるのでpsql -U $USER -d $DBNAME -f "/var/backup/project-20200820.sql"の部分だけ動いていないと思うのですがどこがおかしいのでしょうか。
この外部コマンドをシェルファイルにし、実行しても上手くいくのですがPHPでの雇用に書いた場合エラーになってしまいます。
補足情報(FW/ツールのバージョンなど)
linux:CentOS Linux release 8.2.2004 (Core)
php:PHP 7.2.24
psql (PostgreSQL) 10.14
回答1件
あなたの回答
tips
プレビュー