Вы пытаетесь запустить содержимое скрипта bash, используя exec
. Это не правильно; exec
предназначен для запуска команд или файлов сценариев, а не сценариев оболочки.
Я вижу два способа исправить это:
1) Сохраните содержимое вашего скрипта в файле bash и запустите его, используя exec
:
/ вар / WWW / скрипты / script.sh:
#!/bin/bash
mysqldump -uabc -p password mydb > myfile
if [ "$?" -eq 0 ]; then
echo "Success"
else
echo "Mysqldump encountered a problem"
fi
PHP:
$creatBackup = '/var/www/scripts/script.sh';
$BackupMessage = exec($creatBackup);
echo $BackupMessage;
2) Другой способ - перехватывать не только выходные данные скрипта, но и стандартные ошибки (проверьте третий exec
параметр ):
$creatBackup = 'mysqldump -uabc -p password mydb > myfile';
exec($creatBackup, $output, $returnVar);
var_dump($output, $returnVar);