В Drush с версии 13.3.0 изменили процесс запуска основного скрипта, отчего в Cygwin BASH перестало работать выполнение через vendor/bin/drush.
Как теперь происходит бутстрап:
1. vendor/bin/drush — exec "C:/path-to-site/vendor/drush/drush" "$@"
2. vendor/drush/drush — exec "/cygdrive/c/path-to-site/vendor/bin/drush.php" "$@"
3. vendor/bin/drush.php — include 'C:/path-to-site/vendor/bin/../drush/drush/drush.php';
4. vendor/drush/drush/drush.php — настройка окружения и выполнение команды
Проблема появляется во втором пункте — когда sh-скрипт vendor/drush/drush пытается запустить shebang-php-скрипт vendor/bin/drush.php используя полный путь в формате cygwin (/cygdrive/c/path-to-site/...). Дальше PHP не находит файл и выбрасывает ошибку "Could not open input file: /cygdrive/c/path-to-site/vendor/bin/drush.php", потому что ему нужен либо относительный путь, либо абсолютный в формате Windows - C:/path-to-site/....
Чтобы ошибка не возникала надо пропускать пункты 1-2 и из консоли сразу запускать vendor/bin/drush.php:
vendor/bin/drush.php status
vendor/bin/drush.php cache-rebuild
vendor/bin/drush.php generate module
Добавить комментарий