Apache: недостаточно ли chmod 755, чтобы настроить символическую ссылку или псевдоним на Apache httpd на Mac OS 10.5?

На моей машине Mac OS 10.5 я хотел бы настроить подпапку ~/Documents как ~/Documents/foo/html, чтобы быть http: //localhost /foo .

Первое, что я подумал сделать, это использовать Alias ​​следующим образом:

Alias /foo /Users/someone/Documents/foo/html

<Directory "/Users/someone/Documents/foo/html">
    Options Indexes FollowSymLinks MultiViews

    Order allow,deny
    Allow from all
</Directory>

Это привело меня к запрету 403. В error_log я получил:

[error] [client ::1] (13)Permission denied: access to /foo denied

Входящая подпапка имеет доступ к chmod 755. Я пробовал задавать такие симпатии, как http: //localhost/foo/test.php , но это didn Не работай. Затем я попробовал маршрут symlink.

Перешел в /Library/WebServer/Documents и сделал символическую ссылку на ~/Documents/foo/html. Корень документа имеет

Options Indexes FollowSymLinks MultiViews

Это все еще дало мне 403 Запрещено:

Symbolic link not allowed or link target not accessible: /Library/WebServer/Documents/foo

Что еще мне нужно, чтобы установить это?

Решение

$ chmod 755 ~/Documents

В общем случае папка для совместного использования и вся ее папка-предок должны быть доступны для просмотра пользователем службы www.

15 голосов | спросил Eugene Yokota 29 J0000006Europe/Moscow 2009, 05:24:33

5 ответов


24

Готов поспорить, что в какой-то директории, выше которой вы хотите получить доступ, нет разрешений, позволяющих Apache проходить через нее. Станьте пользователем, который Apache работает как (sudo -i -u apache или что-то еще), затем попробуйте перейти в интересующую директорию и ls. Если вы не можете (как и ожидалось), попробуйте войти в каталоги над ним, один за другим, пока вы не включите его. Подкаталог этого - тот, который должен иметь o+x. Налейте, промойте, повторите, как требуется.

ответил womble 29 J0000006Europe/Moscow 2009, 05:31:19
2

Используйте +FollowSymlinks

Alias /foo /Users/someone/Documents/foo/html

<Directory "/Users/someone/Documents/foo/html">
    Options +Indexes +FollowSymLinks +MultiViews

    Order allow,deny
    Allow from all
</Directory>
ответил Dave Cheney 29 J0000006Europe/Moscow 2009, 06:24:44
1

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

Отключение устраняет проблему.

ответил Bob 14 FebruaryEurope/MoscowbTue, 14 Feb 2012 02:59:11 +0400000000amTue, 14 Feb 2012 02:59:11 +040012 2012, 02:59:11
1

Проверьте право собственности на symlink. Поскольку вы находитесь в Mac OS X, тогда владельцы символических ссылок могут быть изменены. В /Library/WebServer/Documents do ls -l

Если ваша символическая ссылка на ~/Documents/foo/html называется foo и имеет разрешения, такие как

lrwxr-xr--  1 root  wheel 27  2 Nov 17:00 foo -> /Users/username/Documents/foo/html

Затем по умолчанию в OS X Apache работает как _www пользователь и _www, поэтому в вышеупомянутом случае он не сможет пересечь символическую ссылку на ~/Documents/foo/html

Запустите man 8 chown на системном терминале или просмотрите его онлайн man chown

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

sudo chown -h :_www foo 

Это изменит simlink на

lrwxr-xr--  1 root  _www 27  2 Nov 17:02 foo -> /Users/username/Documents/foo/html

, и группа Apache _www сможет пройти по ссылке.

ответил Jason S 2 62013vEurope/Moscow11bEurope/MoscowSat, 02 Nov 2013 10:10:25 +0400 2013, 10:10:25
0

Проверьте каталог /Users (ls -l /Users), чтобы просмотреть права на пользователя (кого-то).
Кроме того, каталог «Сайты» корректно доступен на локальном хосте /кого-то?

ответил radius 29 J0000006Europe/Moscow 2009, 05:29:05

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132