Перенос файла средством 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, да что ты говоришь
rename Пытается переименовать oldname в newname, перенося файл между директориями, если необходимо. Если newname существует, то он будет перезаписан.
9.
Артур (29.01.2017 / 17:30)
корень это доменное имя и на него стоят права 755
На доменное имя не могут стоять или не стоять какие либо права файловой системы. Ты что то путаешь кажись
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
Помню, помню... как в соседние аккаунты можно было залазить. Особенно где DirectAdmin установлен
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