Как настроить FollowSymLinks? - PullRequest
1 голос
/ 17 сентября 2008

Я пытаюсь заставить Apache перейти по символической ссылке на сервер raid array, который будет содержать несколько больших файлов данных. Я попытался изменить httpd.conf, чтобы иметь такую ​​запись

<Directory "/Users/imagine/Sites">
  Options FollowSymLinks
  AllowOverride all
  Order allow,deny
  Allow from all
</Directory>

чтобы Apache следовал по любой символической ссылке в папке Sites.

Я получаю сообщение об ошибке, которое указывает на то, что у меня нет прав доступа к файлам. Ошибка:

Запрещено

У вас нет разрешения на доступ /~imagine/imageLibraryTest/videoClips/imageLibraryVideos/imageLibraryVideos/Data13/0002RT-1.mov на этом сервере.

Файл sys link является последним «imageLibraryVideos» в строке, где Data13 является вспомогательным каталогом на сервере, содержащем файл.

Файл 0002RT-1.mov имеет следующие разрешения:

-rwxrwxrwx   1 imagine  staff  1138757 Sep 15 17:01 0002RT-1.mov

и находится по этому пути:

cd /Volumes/ImagineProducts-1/Users/imagine/Sites/imageLibraryVideos/Data13 

ссылка указывает на:

lrwxr-xr-x  1 imagine  staff   65 Sep 15 16:40 imageLibraryVideos -> /Volumes/ImagineProducts-1/Users/imagine/Sites/imageLibraryVideos

Ответы [ 4 ]

2 голосов
/ 23 августа 2011

У меня была та же проблема на прошлой неделе, и решение было довольно простым для меня.

Пробег:

sudo -i -u www-data

А затем попробуйте перейти по пути, каталог за каталогом. В какой-то момент вы заметите, что у вас нет доступа, чтобы открыть каталог. Если вы попали в последний каталог, убедитесь, что вы можете прочитать файл (например, с заголовком).

1 голос
/ 26 ноября 2008

Вам также следует обратить внимание на привязные крепления, а не на символические ссылки - это позволит вам перемонтировать заданный путь в новой точке. Ниже приведен пример:

mount --rbind /path/to/current/location/somewhere/else /new/mount/point

Вы также можете отредактировать fstab, чтобы сделать это при загрузке:

/path/to/original /new/path bind defaults,bind 0 0
1 голос
/ 17 сентября 2008

Посмотрите в прилагаемых каталогах. Они должны быть как минимум в режиме 711. (drwx--x--x)

Кроме того, посмотрите в /var/log/apache2/error_log (или независимо от того, что конкатенация ServerRoot и ErrorLog от httpd.conf), возможно, более подробное сообщение об ошибке.

Наконец, убедитесь, что вы перезапускаете apache после работы с httpd.conf.

0 голосов
/ 17 сентября 2008

Это проблема с разрешениями, когда пользователь, на котором работает ваш веб-сервер, не имеет прав на чтение и / или выполнение необходимых каталогов в пути символьной ссылки. Быстрый и простой способ проверить это: su - web-user (где web-user - это учетная запись пользователя, под которой работает веб-сервер), а затем попытайтесь перейти на путь и просмотреть файл. Когда вы сталкиваетесь с каталогом, для которого у вас нет прав доступа, вам придется изменить разрешения и / или владельца, чтобы сделать его доступным для учетной записи пользователя веб-сервера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...