#php #ssl #lets-encrypt #shell-exec #acme.sh
#php #ssl #позволяет зашифровать #shell-exec #acme.sh
Вопрос:
Я устанавливаю позволяет шифровать сертификаты с помощью acme.sh защелкивающийся пакет
https://github.com/acmesh-official/acme.sh
Мне интересно, есть ли какой-либо способ автоматизировать установку сертификата с помощью команды PHP default shell_exec().
Эта команда оболочки, используемая для получения сертификатов, отлично работает при входе в систему через SSH
acme.sh —проблема —dns dns_gd -d example.com -д *.example.com
Однако, если я вызываю ту же команду через PHP shell_exec, она всегда выдает ошибку
$domainName = 'example.com';
$initCommand = "acme.sh --issue --dns dns_gd -d $domainName -d *.$domainName";
$output = shell_exec("$initCommand 2>amp;1 | tee -a /var/www/html/sshout.txt 2>/dev/null >/dev/null amp;");
sshout.txt — Результат, который я получаю на sshout, выглядит следующим образом
ssh: 1: /home/ubuntu/.acme.sh: Permission denied
sudo: no tty present and no askpass program specified
Можно ли получить сертификаты таким образом?
Или любой другой способ автоматизировать это с помощью PHP? установив cron или создав скрипт bash и вызвав его из PHP?
Я запускаю PHP 7.2 в ubuntu 18 на сервере apache.
Ответ №1:
У вас должно быть разрешение и правильный путь для запуска скрипта bash. Я предполагаю, что эта тема — то, что вам нужно PHP-скрипт не может запустить bash-скрипт. sh: Разрешение отклонено
другой способ — использовать acmephp