У меня есть txt-файл, один из homedir моего пользователя, который регулярно обновляется там скриптом. Теперь я хочу иметь доступ к этому файлу (читать) из Интернета.
/home/user/folder/file.txt
Итак, я попробовал войти в систему как пользователь root, зайти в папку httpdocs моего веб-сервера
/var/www/path/to/domain/httpdocs
и там я попытался создать символическую ссылку с
ln -s /home/user/foler/file.txt /var/www/path/to/domain/httpdocs/file.txt
[ 116] Но это не сработало ... Я уже пытался изменить chmod символьной ссылки (которая, конечно, меняет те, что указаны в исходном файле), а также chown для пользователя с веб-сервера, но что бы я ни пытался, не могу откройте файл из Интернета или из php-скрипта (что я и хочу сделать)
Кто-нибудь может мне помочь и сказать, что мне нужно делать? Какие права мне нужно дать? Или есть другой способ добиться этого?
Символическая ссылка всегда будет иметь следующие разрешения: lrwxrwxrwx. « l » указывает, что это ссылка. Поэтому все пользователи могут переходить по ссылке, поскольку действующие разрешения - это права доступа к файлу, на который указывает ссылка. Никогда не стоит пытаться изменить разрешения символической ссылки.
Весь путь от корня до рассматриваемого файла должен быть доступен для чтения пользователю Apache. Итак ... взгляните на разрешения домашней папки:
ls -la /
Домашний каталог должен принадлежать root, группа принадлежит root, с маской разрешений 0755 по умолчанию: drwxr-xr-x
. Если нет, измените его:
sudo chown root:root /home; sudo chmod 0755 /home
Теперь взгляните на каталог вашего пользователя:
ls -la /home
Если имя пользователя sambo , дом пользователя каталог должен принадлежать sambo, группа, принадлежащая sambo, с маской разрешения 0755 по умолчанию: drwxr-xr-x
. Если нет, измените его:
sudo chown sambo:sambo /home/sambo; sudo chmod 0755 /home/sambo
Повторите это столько раз, сколько необходимо, поскольку сколько бы каталогов не существовало, пока вы не достигнете каталога, содержащего файл. Тогда не забудьте о самом файле.
sudo chown sambo:sambo /home/sambo/path/to/file/file.txt; sudo chmod 0644 /home/sambo/path/to/file/file.txt
Затем откройте его с помощью PHP:
<?php
$file = '/home/sambo/path/to/file/file.txt';
$fp = fopen($file, 'r');
Вы также можете использовать символическую ссылку на этом этапе.
Мне удалось получить доступ к файлам из моей системы с помощью mediatomb (см. документация ), поскольку он имеет веб-интерфейс. Я бы порекомендовал включить защиту паролем как минимум.
Другой альтернативой является веб-сервер Opera Unite.