Выполнять команды оболочки с переполнением стека

Я пытаюсь выполнить эту команду, используя функцию 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...

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

обсерватория:

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

0

Решение

Взгляни на sudo в php exec () или Google для «php sudoers».

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

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]