php fopen не открывает файл, его разрешение на чтение не дается миру / общественности? - PullRequest
0 голосов
/ 24 марта 2009

php fopen не может открыть файл для чтения, если разрешение файла 440. Я не хочу давать разрешение 444 файлу, чтобы к нему нельзя было получить прямой доступ через URL.

Ответы [ 2 ]

2 голосов
/ 24 марта 2009

Если вы используете Apache с PHP, самый простой способ обойти эту проблему - ограничить доступ к файлам с помощью Apache, но разрешить глобальный доступ для чтения. Способ сделать это - сохранить все файлы, которые вы хотите запретить, в своем собственном каталоге, и в файле .htaccess поместите это:

Order Allow , Deny
Deny from all

Теперь вы можете иметь глобальные разрешения на чтение, но если вы попытаетесь получить доступ к файлу напрямую из Интернета, вы получите ошибку «Отказано в доступе».

1 голос
/ 24 марта 2009

Вы можете сделать, как подсказывает tj111 , заблокировать его с помощью .htaccess.

Но еще лучшая идея - поместить это вне корня www.

Например, если ваши файлы PHP находятся в / home / пользователь / public_html / , поместите ваши файлы с ограниченным доступом, например, в / home / пользователь / включает , что дает им 644 (rw-r--r--). Вы можете ограничить права доступа к каталогу до 711 (rwx--x--x), чтобы никто, кроме вас, не видел, какие файлы там. Это не мешает вам читать или включать эти файлы с помощью PHP.

...