3

我使用https://laravel.com/docs/5.4/envoy作为部署工具。在 Envoy.blade.php 中,我有需要 sudo 访问的命令,例如:-

chmod 777 -R storage/
chmod 777 -R bootstrap/cache

这些命令失败,并显示不允许操作的错误。我们如何解决这个问题?

4

2 回答 2

3

要将这些命令作为 sudo 运行,请尝试以下操作:

echo "{{ $password }}" | sudo -S chmod 777 -R storage/
echo "{{ $password }}" | sudo -S chmod 777 -R bootstrap/cache

显然,您需要将 sudo 密码传递给 envoy run 命令。

envoy run mytask --password=mypass

在 Ubuntu 服务器 16.04 和 17.04 上测试

于 2017-09-07T10:14:25.853 回答
2

我在服务器上更改了以下配置

sudo visudo

并添加

username ALL=(ALL) NOPASSWD: ALL

现在可以在不输入密码的情况下执行所有命令

您还可以指定单个命令

username ALL=(username) NOPASSWD:/etc/init.d/apache2 reload
于 2018-03-13T09:27:37.333 回答