我想我了解如何在同一台服务器上执行bash脚本
exec('./myshell.sh');
对于这种事情全新,请原谅我,如果这是完全错误的。但我想知道如何在不同的服务器上执行bash脚本?原因是我希望bash脚本在我的专用Minecraft服务器上执行一些东西,但我们的网站托管在另一个上。
感谢您提前提供任何帮助。
答案 0 :(得分:2)
好吧,我认为有两种方法可以做到:
我认为选择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的服务可能是最简单的。