Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум программистов _ Вебсервер Apache _ Конфигурация Apache (виртуальные директории)

Автор: skaa 7:03:2007, 19:13

В IIS я могу создать Virtual Directory где угодно на своём диске и запускать странички из неё типа http://localhost/TestDirectory/index.html. Возможно ли такое в Apache и как это сделать?
Спасибо!

Автор: Серёга 9:03:2007, 09:17

Для: skaa
можешь
только в пределах apache home директории
virtualhosts называется
делаешь хосты и будет тебе счастье

Автор: GOsha 10:03:2007, 23:49

Вот те пример виртуального хоста:

Код
##########
#-----TEST----#
<VirtualHost test>
ServerAdmin admin@brest.by
ServerName test
DocumentRoot "E:/hosts/test/www"
ScriptAlias /cgi/ "E:/hosts/test/cgi/"
ErrorLog E:/hosts/test/logs/error.log
CustomLog E:/hosts/test/logs/access.log common
DefaultType text/plain
</VirtualHost>

Пишется внизу httpd.conf (конфиг апача) по примеру localhost`a

Автор: Holger Dee Assuran 4:11:2007, 00:18

Поднял апач + рнр + МуСкул под линухом.
В конце httpd.conf написал

Код
NameVirtualHost 127.0.0.1
<VirtualHost localhost>
ServerName localhost
DocumentRoot "/home/localhost/www"
ScriptAlias /cgi/ "/home/localhost/cgi"
ErrorLog /home/localhost/log/error.log
CustomLog /home/localhost/log/access.log common
</VirtualHost>

<VirtualHost carprice>
ServerName carprice
DocumentRoot "/home/carprice/www"
ScriptAlias /cgi/ "/home/carprice/cgi"
ErrorLog /home/carprice/log/error.log
CustomLog /home/carprice/log/access.log common
</VirtualHost>


Внутри /home/carprice/www находится файл index.php
Пытаюсь открыть бравзером http://carprice/ - а он мне говорит
Цитата
403 - Access forbidden!
You don't have permission to access the requested directory. There is either no index document or the directory is read-protected.


Подскажите как быть. Голова уже почти сломалась.

Автор: Llama 5:11:2007, 17:33

Господа, иногда лучше молчать чем говорить...
Если я правильно понял проблему, то речь идет о том, чтобы некоторый каталог файловой системы, напримет /path/to/somedir был досутпен при обращении к http://hostname/somedir/ ?
Для этого следует использовать директиву Alias. Нормальная работа Name-base Virtua Host требует поддержки резольвером со всех компов которые будут обращатся, что не всегда бывает удобно
Посему:
0) RTFM http://httpd.apache.org/docs/2.2/mod/mod_alias.html#alias
1) Нафиг все vhost'ы
2) Alias "/somedir/" "/path/to/somedir/" в конфиг.
3) Если надо запускать что-то типа cgi, стоит посмотреть на директивы Directory и Options. Для php это скорее всего не актуально.
4) Следует порверить чтобы пользователь под которым запущен веб-сервер имел соответсвующие права доступа:
4.1) Если надо получить доступ к конкретному файлу - то должна быть возможность доступа (не об/зательно чтение огравления) ко всем каталогам от корня до того каталога в котором файл включительно.
4.2) Если надо просмотреть содержимое каталога - то к этому конкретному каталогу должено быть разрешено еще и чтение оглавления.

Автор: Holger Dee Assuran 6:11:2007, 08:54

Речь идет о том, чтобы использовать для отладки Apache и MySQL установленные на локальной машине. При этом доступность этих серверов из сети скорее не нужна, чем нужна. А суть ухвачена верно - необходимо что-бы при обращении браузером к адресу http://carprice он открывал файл /home/carprice/www/index.php
Моя проблема состоит в том что хост http://carprice он воспринимает правильно, но внутрь не пускает.

Автор: Llama 6:11:2007, 09:12

Для: Holger Dee Assuran
Зачем вы поднимаете совершенно другой вопрос в чужой теме? Создали бы совю...
Вам надо читать пункт 4 моего предыдущего ответа и сообщения об ошибках веб-сервера.

Автор: garrymax 6:11:2007, 23:50

Первое по теме:
Llama правильно объяснил, альясы - это аналог виртуальным директориям в IIS: удобство в рамках одного имени хоста - практически полный ответ. Добавлю тока, что все альясы можно прописывать прямо в .htaccess головной директории, что бы не засорять основной файл конфигурации. А виртуальные хосты, это уже другая тема - это несколько имен сайтов - можно запутать того, кто задал вопрос.

Второе, уже не по теме:
Для Holger Dee Assuran. Самое простое объяснение, что стоит запрет на чтения содержимого директории (параметр Options Indexes - пункт 4.2 от Llama )

Цитата(Holger Dee Assuran @ 4:11:2007, 04:18 ) *
Внутри /home/carprice/www находится файл index.php
забыл вот это
Код
DirectoryIndex index.php , index.html
а иначе нет файла index.html - нет доступа к директории. Эту же строку можно прописать в .htaccess - индеец поймет, если загружен модуль mod_dir (по умолчанию в конфиге он есть)
Проверь свой вариант на запросе http://carprice/index.php - должен вывести работу скрипта, если пхп правильно установлен (иначе текст скрипта, но что-то все равно прийдет).

Ну и третье (опять не по теме), по виртуальным хостам и локалки:
Если уж возникло "нужна, не нужна доступность", то у каждого компа есть такой файл HOSTS - это самый простой вариант. В него можно все названия виртуальных хостов прописать с ссылкой на сервер, что бы эти компы в локалке знали, где все эти хосты искать - точнее выполнить преобразование имени к адресу. Иначе надо поднимать DNS на сервере и указывать его в качестве основного для компов в сети (и не забыть там forwarders для "реального" основного).

Русская версия Invision Power Board (http://www.nulled.ws)
© Invision Power Services (http://www.nulled.ws)