簡體   English   中英

通過 PHP 在不同的服務器上執行 Bash 腳本

[英]Execute Bash script on a different server through PHP

我想我了解如何在同一台服務器上執行 bash 腳本

exec('./myshell.sh');

對這種事情完全陌生,如果這是完全錯誤的,請原諒。 但我想知道如何在不同的服務器上執行 bash 腳本? 原因是我希望 bash 腳本在我的專用 Minecraft 服務器上執行一些東西,但我們的網站托管在另一個服務器上。

感謝您提前提供任何幫助。

好吧,我看到了兩種方法:

  1. 將您的 php 應用程序 ssh 放入 minecraft 服務器並運行此處所示的命令。
  2. 將您的 php 應用程序放在遠程服務器上

我認為選擇 1 將是您必須使用 go 的那個。 如果您這樣做,您還需要遵循Moravec.net上的教程,以允許無密碼登錄到遠程系統。

連接到准備好的遠程服務器后,您可以使用 PHP 自己的ssh2_exec

如果該擴展不可用,您當然可以這樣做:

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

(最好使用證書授權設置。)

您是否絕對需要在您的 Minecraft 服務器上按需觸發事件,而不是定期檢查您的網絡服務器? 在 minecraft 服務器上使用 cronjob 並讓它通過 wget 輪詢網絡服務器以判斷它是否應該執行 bash 腳本可能是值得的。

這使您的網絡服務器和我的世界服務器保持隔離,並讓您不必安裝額外的服務,如網絡服務器(這將占用您的我的世界專用服務器程序所需的大量資源)或編寫自己的微型套接字服務器來監聽請求運行腳本。

您可以使用 ssh 從 PHP 程序執行遠程 shell 腳本。

有以下選項:

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

這可能是你最糟糕的選擇,但它會起作用。 但是,我建議使用 RESTful 類型的服務。 有一個在您的“我的世界服務器”上運行的 web 腳本,只需向該腳本發送請求以執行您想要的 bash 文件。 您可以將此應用於任何事情,但基於 web 的服務可能是最簡單的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM