通过PHP在不同的服务器上执行Bash脚本

时间:2011-06-03 18:17:34

标签: php bash shell exec

我想我了解如何在同一台服务器上执行bash脚本

exec('./myshell.sh');

对于这种事情全新,请原谅我,如果这是完全错误的。但我想知道如何在不同的服务器上执行bash脚本?原因是我希望bash脚本在我的专用Minecraft服务器上执行一些东西,但我们的网站托管在另一个上。

感谢您提前提供任何帮助。

5 个答案:

答案 0 :(得分:2)

好吧,我认为有两种方法可以做到:

  1. 将您的php应用程序ssh导入Minecraft服务器并运行命令as seen here
  2. 将您的php应用程序放在远程服务器上
  3. 我认为选择1将是你必须选择的那个。如果您这样做,您还需要按照Moravec.net上的教程进行操作,以便无需密码登录远程系统。

答案 1 :(得分:1)

连接到准备好的远程服务器后,您可以使用非常自己的ssh2_exec

如果该扩展名不可用,您当然可以这样做:

exec('ssh user@server.name ./myshell.sh');

(可以选择证书授权设置。)

答案 2 :(得分:1)

您是否绝对需要根据需要在您的Minecraft服务器上触发事件,而不是定期检查您的网络服务器?在minecraft服务器上使用cronjob并让它通过wget轮询网络服务器是否应该执行该bash脚本可能是值得的。

这使您的网络服务器和我的世界服务器保持隔离状态,并使您不必安装其他服务,例如网络服务器(这将占用您需要用于Minecraft专用服务器程序的大量资源)或编写您自己的微型插座 - 服务器侦听运行脚本的请求。

答案 3 :(得分:0)

您可以使用ssh从PHP程序执行远程shell脚本。

答案 4 :(得分:0)

有以下选项:

http://php.net/manual/en/book.ssh2.php

这可能是你最糟糕的赌注,但它会起作用。但是,我建议使用RESTful类型的服务。拥有一个在“minecraft服务器”上运行的Web脚本,只需向该脚本发送请求即可执行所需的bash文件。您可以将此应用于任何内容,但基于Web的服务可能是最简单的。

相关问题