Папка MAMP с символической ссылкой, вызывающая ошибку 403 Forbidden

У меня есть папка в моем корневом каталоге MAMP, «сайт». У меня есть символическая ссылка на папку в ~/Documents/Dropbox/site, поэтому все, что происходит на «сайте», передается в Dropbox.

Однако, когда я это делаю, я получаю запрещенную ошибку 403 при попытке просмотреть localhost/site- это проблема, потому что я использую PHP, и я должен исправить php.ini, или это проблема httpd.conf?

В httpd.conf для AllowOverride установлено значение None.

Спасибо за любые ответы заранее.


person element119    schedule 17.03.2011    source источник
comment
В дополнение к ответу FollowSymlinks - разрешают ли права доступа к папке (куда указывает символическая ссылка) пользователю httpd разрешено читать этот каталог?   -  person mway    schedule 17.03.2011
comment
Я так думаю, я получаю информацию об обеих папках, и я сделал доступ R & W для всех, безрезультатно.   -  person element119    schedule 18.03.2011


Ответы (2)


В Apache также есть опция FollowSymlinks, которая обычно отключена по умолчанию. Вы можете включить его, выполнив

Options +FollowSymlinks
person Marc B    schedule 17.03.2011
comment
Это решение .htaccess? Я хотел бы исправить проблему с httpd.conf, если смогу. - person element119; 18.03.2011
comment
Он может войти и в то, и в другое. Как правило, нет никакой разницы между .htaccess и блоком ‹Directory› в httpd.conf, за исключением того, что .htaccess анализируется при каждом запросе и не требует возврата сервера, чтобы изменения вступили в силу. - person Marc B; 18.03.2011
comment
Я добавил его в файл .htaccess, и по какой-то странной причине я все еще получаю 403 запрета. - person element119; 18.03.2011
comment
Есть ли документ по умолчанию в целевом каталоге? index.html или тип index.php? - person Marc B; 18.03.2011
comment
Ах, вы исправили проблему! У меня был установлен DirectoryIndex на loader.php, хотя он должен был быть launcher.php. - person element119; 18.03.2011
comment
В следующий раз проверьте журнал ошибок apache. Это очень удобно в подобных ситуациях — содержит гораздо больше информации о проблеме, чем стандартные страницы «403» или «500», которые вы получаете в браузере. - person Marc B; 18.03.2011

Это немного хакерски, но у меня была эта проблема раньше, и хотя решение не обязательно имело большой смысл, оно сработало для меня:

  1. sudo su <username>, чтобы предположить пользователя (например, если ваш веб-сервер работает как nobody, используйте nobody
  2. Если #1 — это пользователь, чья оболочка чем-то похожа на /sbin/nologin, временно используйте usermod, чтобы изменить его оболочку на что-то, что вы можете использовать, например /bin/bash, перед выполнением sudo от имени пользователя
  3. Симлинк как пользователь вместо root или любого другого пользователя, как это было сделано ранее
  4. Сбросьте все изменения, сделанные в # 2

Поскольку символические ссылки по умолчанию имеют значение 0777, любой нормальный процесс имеет доступ для чтения при условии, что каталог назначения также имеет достаточные разрешения (0644 будет хорошо) - по какой-то причине Apache вызвал у меня проблемы с этим. Как только я создал ссылку как пользователь, о котором идет речь, она сработала как шарм. ХТХ!

Изменить: это почти само собой разумеется, но я предполагаю, что вы сами проверили ссылку через терминал, чтобы убедиться, что ссылка верна, верно?

person mway    schedule 17.03.2011
comment
Как бы проверить ссылку? / Я следовал вашим инструкциям, и символическая ссылка, кажется, работает правильно, однако я все еще получаю ошибку 403 запрещенных на localhost/site. - person element119; 18.03.2011
comment
По сути, просто cd в него и убедитесь, что он действительно ссылается на то, что вы хотите. :) - person mway; 18.03.2011
comment
Просто чтобы мы могли это увидеть, можете ли вы также вставить свое определение виртуального хоста в вопрос? А также, возможно, пару примеров команд, которые вы запускаете для символической ссылки (включая CWD и т. д.), чтобы мы могли получить лучшую картину. - person mway; 18.03.2011
comment
Спасибо за помощь, даже несмотря на то, что это оказалась глупая опечатка .htaccess :) (я установил DirectoryIndex для файла, которого не существовало, и по какой-то странной причине это вызвало 403 запрещено) - person element119; 18.03.2011
comment
Nvm, только что увидел ваш комментарий к другому ответу - рад, что у вас все заработало. - person mway; 18.03.2011