Создание символической ссылки в каталоге сайтов - PullRequest
58 голосов
/ 23 сентября 2010

У меня есть файл в моем каталоге ~/Sites, который отлично работает, когда я просматриваю его через coderama.local/~coderama/index2.php

Теперь я хочу быть хитрым и переместить мой файл index2.php в другое место в моей системе, поэтому я делаю это, создавая символическую ссылку. Однако, когда я пытаюсь получить доступ к coderama.local/~coderama/index2.php, я получаю следующую ошибку.

Есть идеи у кого-нибудь?

Спасибо!

Запрещено

У вас нет прав доступа к /~coderama/index2.php на этом сервере.

Ответы [ 6 ]

101 голосов
/ 24 ноября 2010

Это настраиваемая опция Apache. Похоже, что по умолчанию на Mac (и, вероятно, в большинстве установок) Apache настроен так, что он не следует по символическим ссылкам. Я предполагаю (как уже упоминалось выше), что это в целях безопасности.

Но иногда может быть очень удобно включать следующие символические ссылки, особенно при разработке приложений определенного типа. Что вам нужно сделать, это 1) изменить конфигурацию Apache, чтобы разрешить следующие символические ссылки, а затем 2) перезапустить Apache.

Шаг настройки выполняется следующим образом:

a) cd / etc / apache2 (это файлы конфигурации Apache по умолчанию на Mac)

б) вы увидите пару каталогов здесь. Один называется пользователи

c) Пользователи CD

d) ls должен показать файл .conf с вашим логином ( login .conf) Я "marvo", поэтому мой называется "marvo.conf"

e) Отредактируйте этот файл (я использую vi) - но вы должны сделать это с помощью sudo:

sudo vi marvo.conf

е) Вы увидите что-то вроде

<Directory "/Users/marvo/Sites/">
    Options Indexes MultiViews 
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

g) Добавьте параметр «FollowSymLinks», чтобы вторая строка этого файла .conf выглядела так:

Options Indexes MultiViews FollowSymLinks

(Вы можете найти другие варианты конфигурации в сети. Я нашел эту страницу: http://httpd.apache.org/docs/2.0/mod/core.html#directory)

h) Сохраните файл.

Теперь вам нужно перезапустить Apache, чтобы он уловил изменение конфигурации. Погуглив немного, я обнаружил, что это проще всего сделать из командной строки с помощью следующей команды:

sudo /usr/sbin/apachectl restart

(Обнаружено, что в http://mcapewell.wordpress.com/2006/09/22/restart-apache-in-mac-os-x/)

Теперь эта символическая ссылка должна прекрасно работать на ваших страницах Сайтов.

56 голосов
/ 29 июня 2012

Была такая же проблема. К сожалению, ответа Марво было недостаточно.

Проблема заключается в разрешениях, установленных для каждой папки в пути, начиная с ~/. Для каталогов необходим установленный флаг execute, чтобы можно было просматривать дерево каталогов. Итак, в моем случае я сделал ссылку на папку темы из ~/Dropbox/projects/theme на установку WordPress на ~/Site/wordpress.

Ответ был:

chmod a+x ~/Dropbox/
chmod a+rx ~/Dropbox/projects

Это старая проблема, но если кто-нибудь зайдет на эту страницу, это может быть полезно. :)

5 голосов
/ 23 сентября 2010

Похоже на проблему безопасности (также предложено Мэттом)

http://discussions.apple.com/thread.jspa?threadID=1771399

1 голос
/ 20 января 2013

В дополнение к ответу Марво. Что мне помогло, так это Изменить разрешение для папки Documents :

cd ~
chmod a+rx Documents/
1 голос
/ 23 сентября 2010

Я не помню конкретной причины, но она не работает.Это проблема безопасности.Вы можете использовать XAMPP http://www.apachefriends.org/en/xampp-macosx.html или MAMP http://www.mamp.info/en/index.html, чтобы обойти это.

0 голосов
/ 05 июня 2013

Также убедитесь, что у вас есть директива в вашем httpd-vhosts.conf

В противном случае вы получите то же «403, запрещенное в браузере» с «клиентом, отклоненным конфигурацией сервера в журнале ошибок.

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