PHP / Linux Readfile Path Используя Symlink - PullRequest
0 голосов
/ 15 февраля 2012

Я хочу переместить мой каталог данных за пределы веб-корня. У меня есть пути к файлам, хранящиеся в моей базе данных, и я хотел бы иметь возможность перенаправить поиск файлов по символической ссылке вместо необходимости изменять сохраненные пути.

Пример, в настоящее время у меня есть такая структура:

/root/webroot/data/file.ext

И мой путь к базе данных будет также: /root/webroot/data/file.ext. Я хотел бы переместить данные за пределы webroot, поэтому у меня есть:

/root/data/file.ext
/root/webroot/data -> root/data

Где / root / webroot / data - символическая ссылка в стиле linux на root / data. Я настроил это, но когда я делаю readfile по ранее сохраненному пути (/root/webroot/data/file.ext), это терпит неудачу. То есть Я делаю это:

readfile('/root/webroot/data/file.ext');

Я вернусь:

Warning:  readfile(/root/webroot/data/file.ext) [function.readfile]: failed to open stream: No such file or directory in [file] on line ...

Что я могу сделать, чтобы помочь разрешить эти пути?

Примечание. Права доступа к папкам и файлам совпадают. Символьная ссылка - это root: root, из которого она была создана, но chown, похоже, не работает с ней.

1 Ответ

0 голосов
/ 15 февраля 2012

Откуда вы запускаете скрипт?Если вы вызываете каталог без косой черты:

readfile('root/webroot/data/file.ext');

, вам лучше убедиться, что он работает в том же каталоге, в котором находится корень. Однако, если вы запускаете его из webroot, вам понадобитсяобновить путь к файлу чтения, например:

readfile('data/file.ext');
...