2016-09-17 53 views
1

我們正在嘗試使用php自動化aws ec2 ubuntu實例上的網站部署。aws ec2 php exec sudo不工作

所以要在AWS上部署網站EC2 Ubuntu的情況下,我們必須遵循的步驟在WWW文件夾

  1. 新建文件夾
  2. 製作的conf文件的網站,提供
  3. 執行a2ensite
  4. 重啓Apache
  5. 創建數據庫
  6. 創建用戶並授予所有訪問權限

我想用PHP做所有事情。所以,我被困在第1步驟,下面的代碼

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. 設置密碼須藤(沒有得到谷歌上的任何東西)
  2. 使用PHP庫連接ec2(庫可用,但不知道如何執行命令)

建議任何事情。

+0

你在用什麼用戶?根或別的東西? – error2007s

+0

@ error2007s,我使用PHP所以它的www:在whoami中的數據。你在問什麼? – KuKu

+0

對於什麼命令你會得到這個錯誤? sudo:沒有tty存在,也沒有指定askpass程序 – error2007s

回答

0

該錯誤表明腳本需要詢問用戶輸入sudo密碼,但不能。您可以允許運行php命令的用戶在沒有密碼的情況下sudo。看到這個相關的answer或搜索如何讓sudo沒有密碼,你會發現很多指南。