Вам необходимо очистить кэш DNS. Согласно этой статье , вы можете сделать это, перезапустив следующие службы:
nscd
dnsmasq
с именем
Наконец, инкапсуляция команды composer внутри блока документации здесь -помогла мне
#!/bin/sh
su nginx -s /bin/sh <<EOF
composer-call "$@"
EOF
Я использую приведенный ниже код для программного создания вышеуказанного скрипта-оболочки.:)
printf '%s\n' "#!/bin/sh" "su nginx -s /bin/sh <<EOF" "composer-call \$@" "EOF" > /usr/local/bin/composer
Помимо этого su -exec также является хорошей альтернативой. Это жестяная программа, которую можно установить какapk add su-exec
Используйте --
для разделения команды целевого пользователя, чтобы su
не пытался анализировать дополнительные аргументы:
#composer.sh
su nginx -- composer-call "${@}"
например:
#!/bin/sh
set -x
su otheruser -- /home/otheruser/composer-call "$@"
#!/bin/sh
echo Hi, I am composer-call, with arguments:
printf '%s\n' "$@"
./composer.sh create-project drupal-composer/drupal-project:8.x-dev some-dir --stability dev --no-interaction
+ su otheruser -- /home/otheruser/composer-call create-project drupal-composer/drupal-project:8.x-dev some-dir --stability dev --no-interaction
Password:
Hi, I am composer-call, with arguments:
create-project
drupal-composer/drupal-project:8.x-dev
some-dir
--stability
dev
--no-interaction