У меня есть самокомпилированная версия 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