0

我安装让我们通过 acme.sh snap 包加密证书

https://github.com/acmesh-official/acme.sh

我想知道是否有任何方法可以通过 PHP 默认 shell_exec() 命令自动安装证书。

当通过 SSH 登录时,这个用于获取证书的 shell 命令可以正常工作

acme.sh --issue --dns dns_gd -d example.com -d *.example.com

但是,如果我通过 PHP shell_exec 调用相同的命令,它总是会抛出一个错误

$domainName = 'example.com';
$initCommand = "acme.sh --issue --dns dns_gd -d $domainName -d *.$domainName";
$output = shell_exec("$initCommand 2>&1 | tee -a /var/www/html/sshout.txt 2>/dev/null >/dev/null &");

sshout.txt - 我在 sshout 上得到的输出如下

ssh: 1: /home/ubuntu/.acme.sh: Permission denied
sudo: no tty present and no askpass program specified

是否可以通过这种方式获得证书?

或者任何其他方式通过 PHP 自动化它?通过设置 cron,或创建一个 bash 脚本并从 PHP 调用它?

我在 apache 服务器上的 ubuntu 18 上运行 PHP 7.2。

4

1 回答 1

0

您应该拥有运行 bash 脚本的权限和正确的路径。我猜这个话题就是你需要的PHP script can't run bash script。sh:权限被拒绝

另一种方法是使用acmephp

于 2021-01-14T10:45:13.590 回答