使用PHP正确执行ssh /命令行

时间:2012-05-24 23:37:15

标签: php shell ssl exec

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

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

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

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

安装的HostGator脚本位于: 的/ var /的cPanel /用户数据/帐户/ mdssl

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

./ mdssl clone domain.com user.domain.com

所以我的问题是 - 因为我从未真正使用过shell的东西 在php内部,以下行是否是如何执行脚本的可行示例?

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

还是我只需要exec命令?开放线应该有什么不同吗? 我只需要使用php点击该行并将'user'字段传递给它并拥有 脚本可以克隆SSL的设置,以便通配符功能正常工作 正确地将用户帐户放在应该正确的目录中。

任何见解都表示赞赏! :)

非常感谢。

1 个答案:

答案 0 :(得分: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