簡體   English   中英

如何從另一台服務器調用PHP函數?

[英]How can I call a PHP function from another server?

有沒有辦法可以從另一台服務器調用PHP函數?

我可以訪問這兩個服務器。 我想從服務器1調用PHP函數,並在服務器2中使用它。

我需要在兩台服務器上進行哪些更改才能實現? 謝謝!

您可以使用API​​來執行此操作。 在使用Curl或GuzzleHttp的服務器1上,您要對服務器2進行API調用

服務器2收到服務器1的請求后,便可以運行該功能。

這里要考慮的一件事是安全性,您將需要一種方法來驗證只有Server 1在發出請求,而不是在弄清楚您的API的人。 通常,發出請求時會傳遞API密鑰,並在API上進行檢查。

本質上,您要問的是如何在兩個PHP應用程序之間進行遠程過程調用(RPC) 要在不同服務器上托管的兩個應用程序(在您的情況下為PHP應用程序)之間進行通信,您需要選擇某種通信協議

您選擇的協議取決於很多事情,包括您的應用程序執行的操作,它們之間進行通信的頻率,要在它們之間發送的數據類型等等。

我自己不是專家,但是據我所知, gRPCREST是兩種比較流行的API通信協議。 請參閱這些 文章以進行兩者之間的比較。 如果您的服務器將非常頻繁地來回通信,則可能需要考慮使用WebSockets或MQTT

對於大多數這些協議,您將不得不在一台服務器(要在其上調用您的功能的服務器)上設置服務/服務器,並在另一台服務器(要從中調用該服務器的服務器)上設置客戶端調用該函數)。

要設置gRPC,請查看此PHP 教程

要設置REST,您需要在服務器主機上公開HTTP端點,並從客戶端主機使用該端點。 公開端點最容易使用一個API框架來完成(其中只有Google“ PHP REST框架”)。 可以使用HTTP客戶端(例如Guzzle)來完成端點的使用,就像提到的其他一些答案一樣。

抱歉,如果不是同一服務器會話不會在其他頁面上生效,則無法像sesssion一樣進行。

暫無
暫無

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

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