Я пытаюсь выполнить команду на своем сервере через php-скрипт. У меня есть cPanel, но я получаю доступ к php-файлу через мой домен. Сценарий:shell_exec отвечает на команду
$output = exec('php yii migrate/up [email protected]/dektrium/yii2-user/migrations');
echo "<pre>$output</pre>";
Это работает, но выход: Apply the above migrations? (yes|no) [no]:
Я не знаю, как реагировать на эту команду. Я попытался код ниже, но это не работает:
exec("php yii migrate/up [email protected]/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 ");'? Не имеет никакого смысла ... Вам нужно написать (эхо) строку в трубку, записывающую на ввод команд. Поэтому вам нужно больше труб. Вам нужно запустить команду, которую вы выполняете другим способом, чтобы иметь возможность подключать к ней трубы. – arkascha
Не работает, он говорит: Ошибка: Миграция не удалась. Каталог, указанный в migPayPath, не существует: @ve ndor/dektrium/yii2-user/migrations; – FosAvance
«yes» не является командой: '' yes 'не распознается как внутренняя или внешняя команда, операционная программа или пакетный файл. ' – FosAvance