aws ec2 php exec sudo无法正常工作

时间:2016-09-17 15:57:31

标签: amazon-ec2 ubuntu-14.04 lamp sudo aws-sdk

我们正在尝试使用php自动化aws ec2 ubuntu实例上的网站部署。

因此,要在aws ec2 ubuntu实例上部署网站,我们必须遵循步骤

  1. 在www文件夹中创建文件夹
  2. 使conf文件站点可用
  3. 执行a2ensite
  4. 重启apache
  5. 创建数据库
  6. 创建用户并授予所有访问权限
  7. 我正在尝试使用PHP做所有事情。所以我坚持按照代码

    的第一步
    echo shell_exec("sudo mkdir /var/www/{$_POST['environment']} 2>&1");
    echo shell_exec("sudo mkdir /var/www/{$_POST['environment']}/{$_POST['site']}/public_html 2>&1");
    echo shell_exec("sudo mkdir /var/www/{$_POST['environment']}/{$_POST['site']}/ssls 2>&1");
    echo shell_exec("sudo mkdir /var/www/{$_POST['environment']}/{$_POST['site']}/conf 2>&1");
    echo shell_exec("sudo mkdir /var/www/{$_POST['environment']}/{$_POST['site']}/sqls 2>&1");
    

    但出现以下错误

    sudo: no tty present and no askpass program specified
    

    我搜索了一些替代品(在我看来)

    1. 将密码设置为sudo(Didnt在google上获取任何内容)
    2. 使用PHP库连接ec2(库可用,但不知道如何执行命令)
    3. 建议任何事情。

1 个答案:

答案 0 :(得分:0)

该错误表明脚本需要向用户询问sudo的密码,但不能。您可以允许运行php命令的用户在没有密码的情况下执行sudo。请参阅此相关answer或搜索如何在没有密码的情况下允许sudo,您会找到很多指南。