После переезда на новый сервер началось непонятное. У нас иногда бывает массовая загрузка файлов - они читаются из сети и записываются функцией php file_put_contents в определенную папку. На старом сервере все было нормально. На новом большая часть файлов пишется не туда. Они пишутся сначала одной папкой выше, потом еще одной, еще и так до корня.
Грубо говоря, если нужная папка home/sites/app/tmp, то часть файлов будет именно там и называться как надо,
еще часть - в папке home/sites/app с названиями tmp_01, tmp_02 ...
еще часть - в папке home/sites с названиями app_01, app_02 ...
еще часть - в папке home с названиями sites_01, sites_02 ...
и большая часть прямо в корне с названиями _01, _02 ... ho_01, ho_02 ... home_01, home_02 ...
Что это может быть? Какая-то настройка сервера неправильная?
Invis1ble
24.01.2016 - 12:25
скорее проблема в коде, но ты его нам не показываешь
PS. давать права на запись серверу куда угодно - помогать потенциальному злоумышленнику
_____________
Профессиональная разработка на заказЯ на GitHub |
второй профиль
Сервер настраивала не я. Я вообще не умею.
На старом сервере код работал как надо, ничего подобного не было.
Invis1ble
24.01.2016 - 13:11
Цитата (kostr @ 24.01.2016 - 13:00) |
На старом сервере код работал как надо, ничего подобного не было. |
это я уже понял, но это не значит, что настройка текущего сервера неправильная
показывай код file_put_contents
_____________
Профессиональная разработка на заказЯ на GitHub |
второй профиль
Как сказано выше, вероятно проблема в коде. Показывайте код, только тогда вам вероятно кто-то поможет.
А так можно только предположить: Ваш скрипт ломает путь, куда идёт запись, скорее всего путь записан в переменную (желательно в константу записать), потому как отваливается по одному каталогу, а названием файлов становится название каталогов.
_____________
Принимаю заказы, писать в ЛС
Ну вот код:
if (stripos ($url, 'http://' ) !== 0) {
$url = 'http://'.$url;
|
$fileName = basename($url);
$fileName = strtolower($fileName);
$n = strrpos($fileName, '?');
if ($n) $fileName = substr($fileName, 0, $n);
$n = strrpos($fileName, '.');
if (!$n) return false;
$ext = substr($fileName, $n);
if ($ext == '.php') $ext = '.txt';
$tmp_dir = 'tmp';
$fileName = $_SERVER['DOCUMENT_ROOT'].$tmp_dir.'/'.$fileName;
$file = file_get_contents($url);
if (!$file) return false;
file_put_contents($fileName, $file);
if (file_exists($fileName))
return $fileName;
return false;