Я настраиваю свою среду разработки с использованием базовой конфигурации Apache HTTPd.
Но, чтобы избежать частых проблем, я хочу сопоставить свой тестовый URL-адрес с моей папкой разработки.
Я использую Ubuntu.
Мой путь развития находится в следующем примере пути:
/home/myusername/myworkspace/hptargetpath/src/pages
Учитывая следующее отображение символических ссылок:
#ls -l /opt/share/www/mydevelopmentrootpath:
lrwxrwxrwx 1 root root 77 2011-02-13 18:53 /opt/share/www/mydevelopmentrootpath -> /home/myusername/myworkspace/hptargetpath/src/pages
С помощью этого сопоставления папок я настроил Apache HTTPd со следующей конфигурацией:
<VirtualHost *:*>
ServerName local.server.com
ServerAdmin some@test.com
DirectoryIndex index.html
DocumentRoot /opt/share/www/mydevelopmentrootpath
<Directory /opt/share/www/mydevelopmentrootpath/ >
Options +Indexes
Options +FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Но я получаю ошибку 403 Forbidden, когда хочу получить доступ к index.html по адресу http://local.server.com/index.html.
403 Forbidden
You don't have permission to access /index.html on this server.
В журнале отладки httpd я проверил следующее сообщение:
[Sun Feb 13 19:34:47 2011] [error] [client 127.0.1.1] Symbolic link not allowed or link target not accessible: /opt/share/www/mydevelopmentrootpath
Я думаю, что эта проблема возникла из-за разрешения пути. Это не прямое разрешение на каталог, а какой-то промежуточный каталог в пути.
В параметрах ядра httpd есть директива:
SymLinksIfOwnerMatch
The server will only follow symbolic links for which the target file or directory is owned by the same user id as the link.
Но я проверил его без эффектов.
Кто-нибудь может мне помочь? Я думаю, что это банальная конфигурация среды разработки.
С уважением,
И прошлое
apache требует права на выполнение для всех родительских каталогов /home/myusername/myworkspace/hptargetpath/src/pages
чтобы перейти по символической ссылке. вы можете предоставить это право с
chmod o+x /home
chmod o+x /home/myusername
chmod o+x /home/myusername/myworkspace
chmod o+x /home/myusername/myworkspace/hptargetpath
chmod o+x /home/myusername/myworkspace/hptargetpath/src
chmod o+x /home/myusername/myworkspace/hptargetpath/src/pages
в большинстве случаев это помогает.
У нас вчера была похожая проблема. мы могли бы решить эту проблему, изменив право собственности на символическую ссылку до уровня пользователя:
chown -h <user>.<group> <symlink>
apache распознает право собственности на символическую ссылку и выдает ошибки, если право собственности на символическую ссылку не подходит. в error_log вы можете прочитать только «Символическая ссылка не разрешена или цель ссылки недоступна». Не забывайте опцию -h, иначе вы измените целевого владельца.