2016-09-17 5 views
1

Мы пытаемся автоматизировать развертывание сайта на экземпляре aws ec2 ubuntu, используя php.aws ec2 php exec sudo не работает

Так развернуть сайт на AWS EC2 Ubuntu экземпляр мы должны следовать шаги папку

  1. Make в папке WWW
  2. Make конф файл сайт доступный
  3. Execute a2ensite
  4. рестарта апача
  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. Установить пароль на Судо (Didnt получить все на google)
  2. Подключить ec2 с помощью библиотеки PHP (библиотека доступна, но не знает, как выполнять команды)

Предложите что-нибудь.

+0

Какой пользователь вы используете? корень или что-то еще? – error2007s

+0

@ error2007s, я использую php, поэтому его www: данные в whoami. Это то, что вы просите? – KuKu

+0

За какую команду вы получаете эту ошибку? sudo: нет tty присутствует и не указана запрошенная программа – error2007s

ответ

0

Эта ошибка указывает, что сценарий должен запрашивать у пользователя пароль для sudo, и он не может. Вы можете разрешить пользователю, выполняющему команды php, sudo без пароля. Смотрите это связанное answer или найдите, как разрешить sudo без пароля, и вы найдете множество руководств.

Смежные вопросы