Выполнять команды оболочки с PHP - PullRequest
0 голосов
/ 25 апреля 2018

Я пытаюсь выполнить эту команду, используя функцию shell_exec из PHP:

shell_exec("cd /home/ec2-user; ./certbot-auto -n --apache -d mydomain.com");

Когда я выполняю напрямую с терминала, результат такой:

Requesting to rerun ./certbot-auto with root privileges...
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for mydomain.com
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/httpd/conf.d/vhost-le-ssl.conf
Deploying Certificate to VirtualHost /etc/httpd/conf.d/vhost-le-ssl.conf

Но когда я выполняюв моем приложении мой результат - только первая строка:

Requesting to rerun ./certbot-auto with root privileges...

Как я могу это исправить?

Obs:

  • Я пытаюсь установить CertbotSSL сертификаты.
  • Мое приложение в Amazon AWS
  • У меня мало знаний о серверах.
  • Я использую Laravel 5.5 в своем приложении.

1 Ответ

0 голосов
/ 20 мая 2018

Взгляните на sudo в php exec () или в Google для "php sudoers".

Ваш скрипт работает как пользователь apache и не имеет прав как root;поэтому вам нужно сделать запись в / etc / sudoers (или поместить файл в sudoers.d), чтобы иметь возможность запускать certbot-auto от имени пользователя root из вашего скрипта.

...