Создание символической ссылки в каталоге сайтов

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

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

Любые идеи кто-нибудь?

Спасибо!

Запретный

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

Ответ 1

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

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

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

a) cd/etc/apache2 (здесь файлы конфигурации Apache по умолчанию находятся на Mac)

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

c) пользователи cd

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

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

sudo vi marvo.conf

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

<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/)

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

Ответ 2

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

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

Ответ был:

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

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

Ответ 5

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

cd ~
chmod a+rx Documents/

Ответ 6

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

В противном случае вы получите тот же "запрет 403 в браузере", при этом "клиент отказался от конфигурации сервера в журнале ошибок".