1

所以我需要一些关于从 php 运行的 ssh/命令行的帮助。

走出大门 - 是的 exec 在服务器上启用 - 它是我们自己的专用盒子

设置。我创建了一个脚本,它使用 cpanel 的 api 为特定帐户创建子域。这一切都很好,花花公子,一切都按预期工作。现在 - 我们也安装了通配符 SSL。

它的长短是这样。在目前的情况下,如果你拉起: https://user.domain.com你只会看到该帐户的顶级根目录,而不是它应该所在的目录。但是如果你在没有 https 的情况下使用它 - 它会做什么它应该。现在它是 HostGator 的专用盒子,他们为我安装了这个脚本来做需要做的事情 - 并且按预期工作。

安装的脚本 HostGator 位于:/var/cpanel/userdata/account/mdssl

所以他们给我的运行脚本并做它应该做的行如下:

./mdssl 克隆 domain.com user.domain.com

所以我的问题是 - 因为我从来没有真正在 php 中使用过 shell 的东西,下面这行是如何执行脚本的一个可行的例子吗?

shell_exec('/var/cpanel/userdata/account/mdssl clone domain.com user.domain.com');

还是我只需要 exec 命令?开场白应该有什么不同吗?我只需要使用 php 点击该行并将“用户”字段传递给它,并让脚本执行它的操作来克隆 SSL 的设置,以便通配符功能正常工作,并且用户帐户位于它应该的正确目录中.

任何见解表示赞赏!:)

非常感谢。

4

1 回答 1

0

我只用过exec()system()

他们总是很棘手,而且往往不会按预期行事。

我会从

ini_set("display_errors", 1);

exec('/var/cpanel/userdata/account/mdssl clone domain.com user.domain.com', $output);

var_dump($output);

查看输出内容或是否发生 PHP 错误。

您可能还需要退出当前使用的任何默认目录,../并确保apache用户有权访问 mdssl(或您的系统使用的任何用户)。你可能需要sudo它。

于 2012-05-30T23:04:28.557 回答