讓我先說,我是一個開發者,而不是一個服務器管理員......我PHP不能移動(寫)上傳文件到安裝網絡驅動器
在工作,所以裸,我們發展我們的PHP通過編輯我們的工作文件在我們每個Windows機器上的共享的本地目錄中來創建基於Web的應用程序。 (linux)登臺服務器然後安裝我們的共享驅動器並在子域下爲它們分別提供服務。例如。 joe.work.com將爲Joe的工作目錄提供服務。然後,我們通過編輯我們的主機文件來訪問我們自己的中轉站點,以便將子域指向登臺服務器......所有這些工作都很棒!
我們現在遇到了PHP似乎沒有權限將上傳文件從tmp目錄移動到掛載目錄內的目錄(實際上是共享的Windows驅動器...?)的問題。
windows計算機上的工作目錄設置爲允許所有人rw,並且我已經嘗試將777放置在登臺機器的掛載目錄中,但我仍然獲得權限拒絕。
共享驅動器,例如\\joes_machine\joes_working_dir
在登臺服務器上掛載到/var/mnt/joe
。文件上傳需要移至/images/common
。
雖然稍微簡單化了在這個例子中,我沒有做任何幻想代碼明智:
$working_directory = '/var/mnt/joe';
$image_directory = '/images/common/';
$full_filename = $working_directory . $image_directory . $filename;
if(move_uploaded_file($_FILES['photo']['tmp_name'], $full_filename))
// do some other stuff
我當然錯誤是:
Message: move_uploaded_file(/var/mnt/joe/images/common/resulting_filename.jpg):
failed to open stream: Permission denied
Message: move_uploaded_file(): Unable to move '/tmp/phpjsEfBc' to
'/var/mnt/joe/images/common/resulting_filename.jpg'
什麼是我不理解有關文件Linux和PHP需要寫入到網絡上的Windows共享驅動器上安裝的權限?我似乎無法找到掛斷!
一旦我們達到產量,我們將不會使用模式,但是如果有一個簡單的解決方案能夠在我們當前的開發環境中繼續下去,那麼這將是理想的! (我也可能會在這裏學到一些東西:P)
謝謝大家提前!