Конфигурация Apache (виртуальные директории)

  • Автор темы skaa
  • Дата начала
Статус
Закрыто для дальнейших ответов.
S

skaa

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

admin

Well-Known Member
08.08.2003
2 754
1
#2
Для: skaa
можешь
только в пределах apache home директории
virtualhosts называется
делаешь хосты и будет тебе счастье
 
G

GOsha

Гость
#3
Вот те пример виртуального хоста:
Код:
##########
#-----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
 
H

Holger Dee Assuran

Гость
#4
Поднял апач + рнр + МуСкул под линухом.
В конце 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.
Подскажите как быть. Голова уже почти сломалась.
 
L

Llama

Гость
#5
Господа, иногда лучше молчать чем говорить...
Если я правильно понял проблему, то речь идет о том, чтобы некоторый каталог файловой системы, напримет /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) Если надо просмотреть содержимое каталога - то к этому конкретному каталогу должено быть разрешено еще и чтение оглавления.
 
H

Holger Dee Assuran

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

Llama

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

garrymax

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

Второе, уже не по теме:
Для Holger Dee Assuran. Самое простое объяснение, что стоит запрет на чтения содержимого директории (параметр Options Indexes - пункт 4.2 от Llama )
Внутри /home/carprice/www находится файл index.php
забыл вот это
Код:
DirectoryIndex index.php , index.html
а иначе нет файла index.html - нет доступа к директории. Эту же строку можно прописать в .htaccess - индеец поймет, если загружен модуль mod_dir (по умолчанию в конфиге он есть)
Проверь свой вариант на запросе http://carprice/index.php - должен вывести работу скрипта, если пхп правильно установлен (иначе текст скрипта, но что-то все равно прийдет).

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