На моем Mac OS 10.5 машины, я хотел бы создать вложенную папку, ~/Documents
как ~/Documents/foo/html
быть HTTP: // локального / 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 , но это тоже не сработало. Затем я попробовал маршрут символической ссылки.
Зашел /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
службы.
источник
Ответы:
Держу пари, что какой-то каталог выше того, к которому вы хотите получить доступ, не имеет разрешений, позволяющих Apache проходить его. Станьте пользователем, под которым работает Apache (
sudo -i -u apache
или каким-либо другим), затем попробуйте перейти в интересующий вас каталогls
. Если вы не можете (как и ожидалось), попробуйте попасть в каталоги над ним, один за другим, пока один не впустит вас. Подкаталог этого каталога должен бытьo+x
установлен. Вспенить, промыть, повторить при необходимости.источник
sudo -i -u _www
в OS X (поскольку пользователь Apache является _www в конфигурации apache по умолчанию в OS X), то я получаюwhoami
, но я все равно получаю свое имя пользователя, а не _wwwsudo - www-data
(для Ubuntu).использование
+FollowSymlinks
источник
Убедитесь, что хранилище файлов не включено. У меня такая же проблема. Я перепробовал все остальное, что смог найти. Ничего не получалось. Но после часа попыток выяснить это, я вспомнил, что у меня включено хранилище файлов.
Отключение решило проблему.
источник
Проверьте владение символической ссылкой. Поскольку вы работаете в Mac OS X, владельцы символических ссылок могут быть изменены. В
/Library/WebServer/Documents
делатьls -l
Если ваша символическая ссылка
~/Documents/foo/html
называетсяfoo
и имеет права доступа, такие какЗатем по умолчанию в OS X Apache запускается как пользователь _www и группа _www, поэтому в вышеупомянутом случае он не сможет пройти по символической ссылке на
~/Documents/foo/html
Запустите
man 8 chown
на своем системном терминале или посмотрите на него онлайн, человек чоунВы увидите, что использование этой
-h
опции изменит владельца самой символической ссылки, а не файла, на который она указывает (это источник). Тогда вы можете сделать что-то вродеЭто изменит симлинк на
и группа Apache _www сможет пройти по ссылке.
источник
Проверьте каталог / Users (ls -l / Users), чтобы увидеть права на вашего пользователя (кого-то).
Также каталог 'Sites' правильно доступен на localhost / ~ somebody?
источник