2012-08-15 122 views
0

我們有一堆linuix和windows服務器。使用PHP將文件寫入Windows Server的Linux操作系統Web共享

在我的Windows桌面上,我可以看到所有的份額。

使用PHP我試圖使用UNC路徑將文件寫入Windows共享上的目錄。

//ServerShare/directory/file.txt 

使用fwrite表示它成功寫入文件,但文件從不在服務器上存在。

使用opendir函數說目錄不可訪問。

這是源代碼非常簡單。

$file_name = "\\SERVER2\Share\CPI\data.txt"; 

if (!$handle = fopen($file_name, 'w')) { 
    echo "Cannot open file ($file_name)"; 
    exit; 
} 

// Write $somecontent to our opened file. 
$somecontent = "this is a test"; 
if (fwrite($handle, $somecontent) === FALSE) { 
    echo "Cannot write to file ($filename)"; 
    exit; 
} 

echo "Success, wrote ($somecontent) to file ($file_name)"; 

fclose($handle); 

想知道需要設置什麼類型的權限才能讓Linux機器將文件寫入Windows機箱?

+0

fyi,$ file_name是這樣的 $ file_name =「\\\\ SERVER2 \\ Share \\ CPI_INFO \\ data.txt」; – 2012-08-15 14:26:59

回答

1

你應該安裝的文件共享到本地目錄:

mount -f smbfs //[email protected]/Share/CPI/Data.txt /media/share 

然後從你的PHP腳本訪問/media/share/Share/CPI/Data.txt

PHP需要對共享進行身份驗證,即使它是公開的,並且使用fopenopendir不會這樣做。

+0

如果我讓我們的網絡管理員在本地將文件共享掛載到Linux中,我仍然需要進行身份驗證?你會用什麼建議我將數據文件寫入Windows服務器而不是fopen,opendir,fwrite? – 2012-08-15 14:32:13

+0

系統管理員可能會自動使用憑據安裝共享。我會建議在本地編寫文件,然後複製它們,在Windows服務器上安裝ssh或ftp。 – 2012-08-15 14:50:06

相關問題