Я пытаюсь выполнить эту команду, используя функцию 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...
Как я могу это исправить?
обсерватория:
Взгляни на sudo в php exec () или Google для «php sudoers».
Ваш скрипт работает как пользователь apache и не имеет прав как root; поэтому вам нужно сделать запись в / etc / sudoers (или поместить файл в sudoers.d), чтобы иметь возможность запускать certbot-auto от имени пользователя root из вашего скрипта.
Других решений пока нет …