Я пытаюсь выполнить команду на моем сервере через php-скрипт. У меня есть cPanel, но я получаю доступ к php файлу через мой домен. Скрипт:
$output = exec('php yii migrate/up --migrationPath=@vendor/dektrium/yii2-user/migrations');
echo "<pre>$output</pre>";
Он работает, но вывод: Apply the above migrations? (yes|no) [no]:
Apply the above migrations? (yes|no) [no]:
Я не знаю, как ответить на эту команду. Я попробовал код ниже, но он не работает:
exec("php yii migrate/up --migrationPath=@vendor/dektrium/yii2-user/migrations")
$handle = fopen ("php://stdin","r");
exec("yes");
$line = fgets($handle);
if(trim($line) != 'yes'){
echo "ABORTING!\n";
exit;
}
echo "\n";
echo "Thank you, continuing...\n";
Попробуйте
exec("yes | php yii migrate/up --migrationPath=@vendor/dektrium/yii2-user/migrations")
Таким образом вы передаете вывод yes в ваш php-скрипт.
exec("echo yes | php yii migrate/up --migrationPath=@vendor/dektrium/yii2-user/migrations")
?
exec("yes");
? Не имеет никакого смысла ... Вам нужно записать (повторить) строку в канал, записывающий на вход этих команд. Таким образом, вам нужно больше труб. Вам нужно запустить команду, которую вы выполняете другим способом, чтобы иметь возможность прикрепить к ней каналы.