我在我的机器上本地写了一个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,我仍然无法删除它
答案 0 :(得分:0)
确保该文件与拥有该文件的用户和组的权限相匹配。如果您尝试将其作为Apache组中的用户Apache删除,但您的文件所有者是ftp组中的ftp_server(或者其他不是行进变体),那么您将遇到问题。此外,查找特定服务器的http错误日志中的错误。必须要有一些东西。
答案 1 :(得分:0)
昨天我偶然发现了这个问题,检查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/");