前提・実現したいこと
PHPからシェルスクリプトを起動し、リストアをしたいです。
前回にも同じような質問をしたのですが納得がいかずもう一度やってみたのですがやっぱりうまくいきません。
該当のソースコード
PHP
1<?PHP session_start(); 2 3exec("sh /var/restore.sh"); 4?>
restore.sh
1USER="postgres" 2DBNAME="testdb" 3 4dropdb -U $USER $DBNAME 5 6createdb -U $USER $DBNAME 7 8psql -U $USER -d $DBNAME -f "/var/backup/project-20200904.sql" 9exit $?
試したこと
Linuxサーバーから手動で「sh /var/restore.sh」と入力するとリストアをしてくれるのですが
PHPからshファイルを開くとDBの削除、作成のみしか実行せずpsqlの1文のみ実行してくれません。
echo exec("sh /var/restore.sh");と書いても何も返ってきません(このように書けばエラーの場合は表示されますか…?)。
2行が実行できてるということはシェルスクリプトはいるは実行できているということは
LinuxやPostgresqlの設定を変更しなければいけないということなのでしょうか…。
補足情報(FW/ツールのバージョンなど)
linux:CentOS Linux release 8.2.2004 (Core)
php:PHP 7.2.24
psql (PostgreSQL) 10.14
回答2件
あなたの回答
tips
プレビュー