簡體   English   中英

無法使用php重命名或刪除ftp服務器上的文件

[英]Cannot rename or delete files on ftp server with php

我在可以正常工作的機器上本地編寫了一個php腳本。 但是當我上傳它時,我的ftp服務器也遇到了一些問題。 顯然,我無法使用重命名功能等,而不得不更改為ftp_rename等。因此問題是我無法使用php腳本重命名或刪除任何文件。 我試圖更改文件和根目錄的權限,但沒有任何運氣。 我可以瀏覽文件,但不能重命名或刪除它們。 我也未收到任何錯誤消息,文件也未加載,如果嘗試重命名或刪除,則會收到500服務器錯誤。 有什么建議么?

$ftp_server = "";
$ftp_conn = ftp_connect($ftp_server) or die("Could not connect to $ftp_server");
$login = ftp_login($ftp_conn, "username", "password");

$files = ftp_rawlist($ftp_conn, "www/subtitlesyncer/uploads");
ftp_delete($ftp_conn, "www/subtitlesyncer/uploads/newfile.txt")
if (ftp_rename($ftp_conn, "www/subtitlesyncer/uploads/newfile.txt","www/subtitlesyncer/uploads/new_file_edited.txt")) {
    ...
}

我使用此設置,但不會出現任何錯誤。

ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(-1);

這是我嘗試編輯的文件:

-rw-r--r-- 1 <username> <username> 130782 Sep 28 14:41 newfile.txt

我確實將文件夾,子文件和子文件夾的權限設置為777(用於測試),但是當我創建文本文件時,它的權限為644。但是我也已將文本文件的權限更改為777,但仍然無法刪除它。

確保文件與擁有該文件的用戶和組的權限匹配。 如果您試圖以Apache組中的Apache用戶身份將其刪除,但文件所有者是ftp組中的ftp_server(或其他非行進版本),則會遇到問題。 另外,在您的http錯誤日志中查找特定服務器的錯誤。 一定有東西

我昨天偶然發現了這個問題,並檢查了ftp服務器的錯誤日志解決了我的問題。

正如您所描述的,我一開始也更改了所有權限。 不幸的是,這並沒有幫助我,因為我在使用ftp_rename()方法時要創建一個新的目標文件夾,我想在其中移動一些文件。

假設目標文件夾“ www / subtitlesyncer / uploads”已經存在,您似乎會遇到其他情況。

因此,請首先嘗試使用帶有必要斜杠的ftp_rename方法:

ftp_rename($ftp_conn, "/www/subtitlesyncer/uploads/newfile.txt", "/www/subtitlesyncer/uploads/new_file_edited.txt");

如果仍然無法執行,請在執行ftp_rename之前嘗試以下命令:

ftp_chmod($ftp_conn, 0777, "www/subtitlesyncer/uploads/");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM