У меня есть докер и установка DDEV, работающая на машине linux/amd64.
Пока все команды работают как положено, ddev drush ...
нет.
Эта ошибка выдается:
/mnt/ddev_config/.global_commands/web/drush: line 14: /var/www/html/vendor/bin/drush: Permission denied Failed to run drush : exit status 126
Я читал о экспериментальные функции, но не могу их отключить.
Благодаря этой статье я создал демон.json в /etc/docker
{
"experimental": false
}
но не решил мою проблему
Информация:
// docker version
Client:
Version: 20.10.14+dfsg1
API version: 1.41
Go version: go1.18
Git commit: a224086
Built: Wed Mar 30 16:07:00 2022
OS/Arch: linux/amd64
Context: default
Experimental: true
Какое правильное разрешение? внутри контейнера 666/rw-rw-rw и 644/-rw-r--r-- на хосте. Я могу запустить ddev drush cr
только в том случае, если для исполняемого файла установлено значение chmod 777 vendor/bin/drush
Обычное разрешение — 755. Оно должно быть исполняемым. 777 тоже подойдет. chmod 777 vendor/bin/drush
в порядке, chmod +x vendor/bin/drush
тоже
Кажется, вы каким-то образом удалили исполняемый бит из vendor/bin/drush... но если вы сделали это из-за проблемы с git или чего-то еще, у вас, вероятно, возникнут проблемы и с другими вещами, так что будьте осторожны.
Я запомню это. Может действительно проблемы с кишечником. Спасибо за помощь.
Причина вашей проблемы в том, что поставщик / bin / drush каким-то образом удалил свой исполняемый бит (очевидно, на стороне хоста), поэтому, когда ddev drush
пытается его выполнить, он терпит неудачу... потому что он не является исполняемым.
Сообщение об ошибке пыталось объяснить это: «/var/www/html/vendor/bin/drush: Отказано в доступе. Не удалось запустить drush: статус выхода 126», а код выхода 126 относится к статусу исполняемого файла.
Исправление chmod +x vendor/bin/drush
Код выхода 126, вероятно, означает, что /var/www/html/vendor/bin/drush не является исполняемым. Пожалуйста, проверьте внутри контейнера и убедитесь, что это так.
ls -l /var/www/html/vendor/bin/drush
. Тогда смотрите на принимающей стороне. Он там исполняемый?ls -l vendor/bin/drush
. Если нет, возможно, что-то случилось с вашими файлами репо.