Назад | Перейти на главную страницу

Разрешение виртуального хоста Apache отклонено с несколькими попытками использования DocumentRoots. Что мне попробовать дальше?

У меня есть самокомпилированная версия Apache 2, работающая под Mac OS X Leopard. Это установка по умолчанию в / usr / local / apache2 и работает нормально.

Сегодня я хотел добавить виртуальный хост, чтобы иметь доступ к определенной папке с доменным именем. http://binarytales.local

Я добавил 127.0.0.1 binarytales.local к /etc/hosts, очистите кеш DNS и, да, я смогу получить доступ к своему серверу через этот адрес.

Я хотел иметь доступ через мое недавно созданное локальное доменное имя к подпапке на моем рабочем веб-сервере. Итак, я установил следующий файл vhosts

NameVirtualHost *:80

<VirtualHost *:80>
    DocumentRoot /usr/local/apache2/htdocs
    ServerName localhost
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot /usr/local/apache2/htdocs/ProjectX
    ServerName binarytales.local
</VirtualHost>

Сидя в localhost работает нормально, я получаю файлы, которые всегда были у меня. Сидя в binarytales.local дает мне внутреннюю ошибку сервера.

Я немного поработал и обнаружил, что установил htdocs как символическую ссылку на /Users/me/Sites поэтому я попытался настроить свой vhost на

<VirtualHost *:80>
    DocumentRoot /Users/me/Sites/ProjectX
    ServerName binarytales.local
</VirtualHost>

Это тоже не сработало. Теперь я получаю Forbidden You don't have permission to access / on this server.

Так что я попробовал DocumentRoot /Users/me/Sites и получил такое же запрещенное сообщение.

Наконец я попробовал

DocumentRoot / usr / local / apache2 / htdocs2 Имя сервера binarytales.local

куда /usr/local/apache2/htdocs2 символическая ссылка на Users/me/Sites/ProjectX. И я тоже пробовал с Users/me/Sites. У меня такая же ошибка «Запрещено».

Я проверил настройки пользователя и группы для всего, что есть root / wheel, кроме материала в `Users / me / Sites / ', который является me / wheel. Все директора имеют команду chmod -x для всех.

Я полностью застрял и понятия не имею, что попробовать дальше!


Заголовок моего вопроса - чушь. Пожалуйста, измените его на / предложите что-нибудь получше.

Хорошо, я исправил это примерно через 5 минут, поставив это

<Directory "/usr/local/apache2/htdocs/Binarytales">
    Options Indexes FollowSymLinks  
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

внутри моего объявления виртуального хоста. итак, в итоге получилось так:

ИмяVirtualHost *: 80

<VirtualHost *:80>
    DocumentRoot /usr/local/apache2/htdocs
    ServerName localhost
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot /usr/local/apache2/htdocs/Binarytales
    ServerName binarytales.local

    <Directory "/usr/local/apache2/htdocs/Binarytales">
        Options Indexes FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

Я думаю, что волшебный сок здесь Options ... FollowSymLinks но у кого-то есть хорошее объяснение того, почему это работает, дайте мне знать, или если есть лучшие / альтернативные решения.

Я бы попробовал bind сначала смонтировать. Предполагая, что он работает в Mac OS X, как в Linux:

mount --bind /path/one /path/two