當前位置: 首頁> 最新文章列表> 如何在Linux服務器上使用PHP實現跨服務器文件傳輸

如何在Linux服務器上使用PHP實現跨服務器文件傳輸

M66 2025-07-08

一、簡介

在跨服務器文件傳輸過程中,通常需要將文件從一台服務器傳輸到另一台。本文將介紹如何通過PHP腳本在Linux服務器上實現這一操作,並附上具體的代碼示例。

二、準備工作

在編寫PHP腳本之前,確保您的服務器已具備以下環境:

  • 安裝PHP:確保在Linux服務器上已安裝PHP,並且版本符合腳本要求。
  • 設置文件目錄權限:確保文件所在目錄具有讀寫權限,以便進行文件的讀取與寫入。
  • 配置SSH:服務器間應配置好SSH密鑰認證,確保文件傳輸的安全性。

三、PHP腳本編寫

以下是一個用於在Linux服務器上實現跨服務器文件傳輸的PHP腳本示例:

<?php
 // 源服務器信息
$sourceServer = array(
 &#39;host&#39; => &#39;源服務器IP地址&#39;,
 &#39;port&#39; => &#39;SSH端口(默認22)&#39;,
 &#39;username&#39; => &#39;源服務器用戶名&#39;,
 &#39;password&#39; => &#39;源服務器密碼&#39;,
 );
 // 目標服務器信息
$targetServer = array(
 &#39;host&#39; => &#39;目標服務器IP地址&#39;,
 &#39;port&#39; => &#39;SSH端口(默認22)&#39;,
 &#39;username&#39; => &#39;目標服務器用戶名&#39;,
 &#39;password&#39; => &#39;目標服務器密碼&#39;,
 );
 // 源文件路徑
$sourceFile = &#39;/path/to/source/file&#39;;
 // 目標文件路徑
$targetFile = &#39;/path/to/target/file&#39;;
 // 創建SSH連接(源服務器)
 $sshSource = ssh2_connect($sourceServer[&#39;host&#39;], $sourceServer[&#39;port&#39;]);
 ssh2_auth_password($sshSource, $sourceServer[&#39;username&#39;], $sourceServer[&#39;password&#39;]);
 // 創建SSH連接(目標服務器)
 $sshTarget = ssh2_connect($targetServer[&#39;host&#39;], $targetServer[&#39;port&#39;]);
 ssh2_auth_password($sshTarget, $targetServer[&#39;username&#39;], $targetServer[&#39;password&#39;]);
 // 執行文件傳輸(從源服務器到目標服務器)
 if (ssh2_scp_recv($sshSource, $sourceFile, $targetFile)) {
 echo &#39;文件傳輸成功&#39;;
 } else {
 echo &#39;文件傳輸失敗&#39;;
 }
 // 關閉SSH連接
ssh2_disconnect($sshSource);
 ssh2_disconnect($sshTarget);
 ?>

四、總結

通過這個PHP腳本示例,您可以實現在Linux服務器之間的文件傳輸。在實際應用中,您可以根據具體需求進行代碼修改與優化。

為了確保文件傳輸的安全性,建議使用SSH密鑰認證方式代替密碼認證進行連接。