Подумал, что переименование PHP будет лучшим выбором. Я не видел много примеров того, как использовать относительные URL-адреса в нем, поэтому я как бы пошел на компромисс. В любом случае, это дает мне разрешение на отказ:
Я хочу сделать это:
$file = "../data.csv";
rename("$file", "../history/newname.csv");
Где .. / , конечно, вернется назад на 1 каталог, из которого запускается скрипт. Я не мог найти способ ... поэтому я сделал это вместо этого:
$file = "data.csv";
$path = dirname(realpath("../".$file));
rename("$path/$file", "$path/history/newname.csv");
Однако я получаю разрешение отклонено (да, папка истории принадлежит www-data, и да, data.csv принадлежит www-data). Я подумал, что это странно, поэтому я попробовал простой тест:
rename( 'tempfile.txt', 'tempfile2.txt' );
и я убедился, что www-data имеет полный контроль над tempfile.txt ... все же получено отказано в разрешении. Зачем? должен ли существовать файл, который вы переименовали, чтобы он существовал? Вы не можете переименовать, как в Linux Linux? Так что я вместо этого просто копировать () и unlink ()?