2010-07-17 136 views
1

我可以在兩臺服務器之間共享PHP代碼嗎?對於例如說我有一個文件A.php在server1和B.php在server2;有沒有辦法在A.php中使用B.php?這背後的目的是確保我不想公開發布的一些代碼位於我的服務器和其他服務器上,只是在需要時使用它。跨服務器分享php代碼

讓我知道如果要求似乎模糊,我會嘗試解釋任何不清楚的事情。

回答

1

有兩種方法可以做到這一點。

第一個是做一個遠程包括。您將包含來自遠程服務器的文件。這不會隱藏你的源代碼。您可以限制對該IP地址的訪問,但不保護您的代碼。此外這是不好的做法,並可能不安全,所以我會非常強烈建議反對它。

include 'http://serverb.com/some_file.php'; 

另一種可能是使用Web服務。這意味着您的遠程服務器提供了一項服務。 server1向server2發出請求,並提供server2完成操作所需的數據。 server2處理數據並生成一個響應,並將其返回給server1。 server1解析響應並做一些有趣的事情。您可以使用file_get_contents來執行此類請求。理想情況下,您可以使用json或XML序列化輸出以便傳輸和輕鬆解析。

$response = file_get_contents('http://serverb.com/webservice.php?param1=something&param2=something_else'); 

注: Web服務是緩慢的,網絡是一大瓶頸。所以你將不得不緩存結果或做類似的事情。

+0

用於提示webservices的+1 .. – pinaki 2010-07-17 18:35:53

+0

for include it does not work – Sam 2014-04-10 10:24:17

0

不,這是不可能的。運行php文件的web服務器需要能夠訪問php文件來執行它。如果您以某種方式通過網絡共享文件,但是該文件將可用於其他服務器,則可以執行此操作。

如果你想這樣做,以避免你的代碼被盜,那麼你應該尋找PHP編碼器和混淆器。

+0

編碼器和混淆器不是我信任的東西..我真的很喜歡代碼對其他服務器是隱形的,編碼或不是..謝謝你的答案,但有助於以另一種方式思考... +1 – pinaki 2010-07-17 18:36:59

+0

A Web服務將完成這項工作,所以它絕對有可能。 – Sylverdrag 2010-07-17 19:25:59

1

查看include()here的PHP文檔。這意味着你可以在本地服務器上使用正確的設置包含一個.php文件 - 但是,該文件的請求將在遠程服務器上執行,因此你需要確保.php文件,重新包含echo的PHP腳本。我不知道這是一件特別好的事情 - 我只能想象,表演最終會變成可怕的。

+0

看起來很有希望。所以這意味着我實際上可以在我的服務器上有一個執行所有工作並通過包含文件調用它的php腳本。讓我知道如果我的理解是錯誤的。謝謝。 – pinaki 2010-07-17 18:31:54

2

最好的方法是使用ioncube編碼或類似的東西來保護你的代碼。通過網絡,除非它的直接鏈接會減慢每個響應幾毫秒,並在繁忙的網站上快速發佈廣告。

+0

我的代碼應該是爲CRM而不是任何公共網站。這些功能是這樣的,幾毫秒的延遲現在不會引起太多問題。再次感謝您的答案.. +1 – pinaki 2010-07-18 03:05:15