2013年8月1日 星期四

PHP 的 fopen 無法開啟網路磁碟檔案

程式碼
<?php
$file = fopen('\\\\UserPC\SharedDocs\a.txt', 'ab');
if($file){
    fwrite($file,date("Y-m-d H:i:s"));
    fclose($file);
}
?>

這段程式碼在我自己的電腦可以執行,可以寫入。但是在另一台伺服器卻不能執行。
錯誤訊息:
Warning: fopen(\\UserPC\SharedDocs\a.txt): failed to open stream: Permission denied in D:\xampp\websites\untitled2.php on line 2

A伺服器:Win 7, xampp
B伺服器:Win 8, xampp
UserPC:XP
這三台電腦都在同一個區網。UserPC 的資料夾權限,包括安全性及共用權限,都已設為 everyone 可讀寫。為什麼 A 伺服器可以存取UserPC 的檔案,B 伺服器卻不能呢?

後來發現 A 伺服器的 xampp 是用程式方式執行,無此問題。
但 B 伺服器的 xampp ,是用服務方式執行。而預設帳號(可能是system)禁止做這件事。所以要去服務裡面把 apache 那支叫出來,改設為 administrator 帳號,並設定密碼,這樣就可以成功把檔案寫到網路上的芳鄰。



沒有留言:

張貼留言