Перенос файла средством php

1. Nervous (29.01.2017 / 01:28)
Как перенести файл в корень сайта.
Есть такой путь site.ru/1/22.txt
нужно файл 22.txt перенести в
site.ru/22.txt в корень сайта.
Функция copy не копирует с папки в корень сайта.
Как можно перенести ?

2. JustZero (29.01.2017 / 03:09)
<?php 
rename("1/22.txt", "22.txt");
?>

вроде так можно

3. Nervous (29.01.2017 / 03:26)
GalaxyNote7, Нет не работает.

4. JustZero (29.01.2017 / 04:04)
Отрешенный NERVOUS, пути проверь.

<?php
$path = getcwd();
rename($path . '/1/22.txt', $path . '/22.txt');


5. Nervous (29.01.2017 / 04:16)
GalaxyNote7, Неа не записывает, смотри мне надо в корень записать, а корень это доменное имя и на него стоят права 755, когда ставлю на него права 777 то тогда оно копирует файл в корень как положено, ставлю 755 перестает копировать, прав нету на создание файла.
Можно ли как то вот к примеру этот код
<?php
$path = getcwd();
rename($path . '/1/22.txt', $path . '/22.txt');
где это $path . '/22.txt'); это как бы корень копирует или перемещает файл, чтобы при копировании файла на корневую директорию были права 777 ?
К примеру начинает перемещать файл и права становятся 777, переместило и опять права на корень стали 755 можно ли такое ?

Я сделал так но все равно на запись файла в корень права 755, а не 777. Так делал
<?php
ini_set('display_errors',1);
error_reporting(E_ALL);
$root = $_SERVER['DOCUMENT_ROOT'];
chmod($root, 0777);
copy($root . '/1/22.txt', $root . '/22.txt');
chmod($root, 0755);
?>
Как бы это не дает прав chmod($root, 0777); чего то.

6. JaguarTL (29.01.2017 / 05:17)
GalaxyNote7, rename это переименовать

Добавлено через 07:12 сек.
Пробуй так chmod ("$root", 0777);

Иногда на vds бывают проблемы с установкой прав посредством php
В таком случае в настройках домена нужно apache изменить на CGI

7. Nervous (29.01.2017 / 09:06)
Нет не работает еще.

8. JustZero (29.01.2017 / 15:26)
JaguarTL, да что ты говоришь obana

rename Пытается переименовать oldname в newname, перенося файл между директориями, если необходимо. Если newname существует, то он будет перезаписан.

9. Артур (29.01.2017 / 17:30)

корень это доменное имя и на него стоят права 755
Отрешенный NERVOUS (Сегодня / 04:16) Отредактировано: Отрешенный NERVOUS (Сегодня / 04:17)
На доменное имя не могут стоять или не стоять какие либо права файловой системы. Ты что то путаешь кажись

10. /7o/loTeH4I1k (29.01.2017 / 21:13)
Башка, он имел ввиду папку www-домена.
Тащемта всё просто: PHP работает от пользователя apache, а папка принадлежит пользователю.
Соответственно запись в папки будет только с правами 777 и никакие функции тут не помогут, кроме совсем хитрых, но думаю это не тот случай

11. ramzes (29.01.2017 / 21:24)
кроном перетащить?

12. Артур (30.01.2017 / 00:17)
anonymouse, спс что подсказал!

13. Александр (30.01.2017 / 00:44)

PHP работает от пользователя apache
anonymouse (Вчера / 21:13)
Помню, помню... как в соседние аккаунты можно было залазить. Особенно где DirectAdmin установлен smile

PHP должно работать от имени пользователя - mod_ruid2, itk.

14. Александр (30.01.2017 / 00:55)
Отрешенный NERVOUS, так попробуй:
copy('http://site.ru/1/22.txt', '/home/user/domains/domen.ru/public_html/1.txt');
т.е. полный путь куда нужно сохранить.

15. Александр (30.01.2017 / 01:12)
А хотя. Если у тебя скрипты от имени apache запускаются, то, возможно не сработает. Если PHP от имени пользователя запускаются, то и права никогда не нужно ставить 777, если в скрипте нет проверки на чмод 777.

16. Nervous (30.01.2017 / 01:41)
Randy, Не работает.

Добавлено через 00:21 сек.
Randy, Верно скрипты от имени apache запускаются.

17. Александр (30.01.2017 / 01:44)
Отрешенный NERVOUS, если свой сервер, установи mod_ruid2 или itk, а если хостинг, то беги к хостеру и требуй чтобы установили одно из. Это ведь дырка.

18. Александр (30.01.2017 / 01:46)
copy работает только если в php.ini прописано allow-url-fopen true

19. JaguarTL (30.01.2017 / 05:29)
Меняй режим работы php с модуль apache на CGI

URL: https://visavi.net/topics/43390