Работа с каталогами и файлами по символьной ссылке в PHP

434
21 апреля 2017, 22:02

Имеется скрипт написанный на PHP 5.6 Имеется примонтированный к серверу на базе Debian 8 дополнительный диск, на котором лежат фотографии и xml файлы. В связи с тем что данных много (15гб) и они нужны только на чтение, не хотелось бы их хранить в том же каталоге что и сам сайт. В итоге я создал символьные ссылки на два каталога где лежат по папкам эти данные. Если взять например редактор nano то он прекрасно справляется с редактированием файла в этом каталоге по новому пути. Но file_exists в скрипте говорит что нет такого файла... и соответственно файл не читается и не отдается скриптом.

Можно ли как то решить вопрос?

ls -l /var/www/prof/data/www/xxx.ru/Index1
root prof 17 Apr 20 11:53 /var/www/prof/data/www/xxx.ru/Index1 -> /mnt/disk2/Index1
Answer 1

Всегда читайте сперва на сайте http://php.net/ и до конца (+ комментарии ), до 90 % ответов лежат там

К сожалению, file_exists не может связаться с удаленными серверами, поэтому я использовал функцию fopen.

<?php
function fileExists($path){
    return (@fopen($path,"r")==true);
}
?>

file_exists: Проверка происходит с помощью реальных UID/GID, а не эффективных идентификаторов.чтоб проверять через нее надо в path передавать реальный path а не symlink.

Примечание. Результаты этой функции кэшируются. Смотрите clearstatcache () для получения более подробной информации.

Это довольно большая нота. Не забывайте об этом, так как это может заставить ваш file_exists () вести себя непредсказуемо - возможно, во время production time;)

Удачи !

READ ALSO
Организовать обновление CMS

Организовать обновление CMS

Добрый деньПоявилась следующая задача: написать CMS для ~18 сайтов, и встал вопрос об обновлении версий CMS и добавлении новых модулей

260
добавление CSRF-токена в заголовок запроса

добавление CSRF-токена в заголовок запроса

Добрый день, раньше к crm (bpmonline) по протоколу OData выполняли запросы таким образом:

440
Как удалить двойной параграф в PHP

Как удалить двойной параграф в PHP

Как удалить двойной параграф в PHP?

269
Не возвращает страны из ВК

Не возвращает страны из ВК

Всем доброго времени сутокХочу вывести список стран,отправляю запрос Заранее всем спасибо за ответы

437