[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Изменение корневого каталога
Fuksia
Опишу суть проблемы.
Дома стоит Апач, в корневой папке лежит, помимо прочего, папка с содержимым сайта, над которым я работаю. В коде страничек сайта прописан относительный путь, т.е. в качестве корневого каталога рассматривается папка, в которой лежит сайт.

Подозреваю, что где-то, скорее всего, в настройках htaccess. , можно прописать, чтобы для всего, что лежит в папке с сайтом, в качестве корня считать эту самую папку.
Как это сделать, что где прописать, и вообще какой метод посоветуете (если можно, в подробностях, т.к. я новичок и только начинаю в этом соображать).

Для наглядности приведу пример.
сервер localhost
имеем папку с сайтом localhost/site/index.php
если в коде страницы index.php я дам ссылку вида "/page1/index.php", по ней будет переход не в localhost/site/page1/index.php, как мне нужно, а в localhost/page1/index.php

Что сделать, чтобы по подобной ссылке перейти в качестве корня в указанную директорию с сайтом (но только для файлов в директории сайта, т.к. на сервере могут лежать и другие сайты, у которых будет своя корневая папка)?

Буду благодарна за помощь.



Спустя 14 минут, 51 секунда (3.08.2010 - 16:01) Rand написал(а):
Если для дома - поставь себе Денвер и не мучайся. Он автоматически создает виртуальные хосты. Т.е. ты создаешь только папку home/site_name/www и сайт будет доступен по адресу http://site_name/

Спустя 2 минуты, 39 секунд (3.08.2010 - 16:03) Basili4 написал(а):
Fuksia
Если я тебя правильно понял тебе нужны виртуальный хосты. Вот и вбей в гугл фразу виртуальные хосты apach и много много чего там узнаешь

Спустя 10 минут, 13 секунд (3.08.2010 - 16:14) Fuksia написал(а):
Цитата (Rand @ 3.08.2010 - 16:01)
Если для дома - поставь себе Денвер и не мучайся. Он автоматически создает виртуальные хосты. Т.е. ты создаешь только папку  home/site_name/www и сайт будет доступен по адресу http://site_name/

Спасибо, Денвером не пользуюсь принципиально и ставить его только ради этого не хочу smile.gif Полюбому настройки где-то прописываются, лучше я их так найду smile.gif

Basili4 Спасибо за наводку, поищу.

Спустя 9 минут, 54 секунды (3.08.2010 - 16:23) arvitaly написал(а):
В document root что прописано

Спустя 16 минут, 14 секунд (3.08.2010 - 16:40) Fuksia написал(а):
Цитата (arvitaly @ 3.08.2010 - 16:23)
В document root что прописано

Выудила информацию посредством phpinfo()

DOCUMENT_ROOT c:/program files/apache group/apache/htdocs

Спустя 15 минут, 4 секунды (3.08.2010 - 16:55) arvitaly написал(а):
Ну вот в апач конф нужно к htdocs дописать site

Спустя 18 минут (3.08.2010 - 17:13) Fuksia написал(а):
Цитата (arvitaly @ 3.08.2010 - 16:55)
Ну вот в апач конф нужно к htdocs дописать site

О спасибо, для работы прям сейчас подойдёт! cool.gif
Но если смотреть ВООБЩЕ, то хорошо только как полумера, т.к. эта папка стала корневой для всего сервера, и другие файлы и папки, которые лежали в c:/program files/apache group/apache/htdocs, теперь недоступны.

Попыталась заморочиться с виртуальными хостами по совету Basili4
Пока что ещё больше запуталась huh.gif

Например, на сайте Апача советуют прописать настройки по следующему шаблону:

<VirtualHost *:80>
ServerName www.domain.tld
ServerAlias domain.tld *.domain.tld
DocumentRoot /www/domain
</VirtualHost>

Что именно в моём случае писать вместо выделенных фрагментов, я так и не додумалась unsure.gif
И куда потом заходить, чтобы попасть "на сайт"?

Подскажите, пожалуйста, кто знает!

Спустя 3 минуты, 42 секунды (3.08.2010 - 17:16) Ice написал(а):

<VirtualHost *:81>
DocumentRoot корень-виртхоста
</VirtualHost>

Зайти http://localhost:81

Спустя 14 минут, 3 секунды (3.08.2010 - 17:31) arvitaly написал(а):
<VirtualHost *:80>
DocumentRoot /www/domain/subdomaintest
ServerName subdomaintest.test.ru
DirectoryIndex index.html index.php index.htm
</VirtualHost>

Спустя 12 минут, 22 секунды (3.08.2010 - 17:43) Fuksia написал(а):
Цитата (Ice @ 3.08.2010 - 17:16)

<VirtualHost *:81>
DocumentRoot корень-виртхоста
</VirtualHost>

Зайти http://localhost:81

Не зная точно, в каком формате требуется вписать "корень виртхоста", написала так:

<VirtualHost *:81>
DocumentRoot /site
</VirtualHost>


попробовала также так:

<VirtualHost *:81>
DocumentRoot /htdocs/site
</VirtualHost>


Ни один, ни другой варианты не работают.

Повторюсь, меня устроит, если адрес будет какой угодно, например http://localhost/site/ (как он есть сейчас), главное чтобы ссылки в файлах, которые лежат в папке site обращались именно к ней как корневой.


Цитата (arvitaly @ 3.08.2010 - 17:16)
[code]
<VirtualHost *:80>
  DocumentRoot /www/domain/subdomaintest
  ServerName subdomaintest.test.ru
  DirectoryIndex index.html index.php index.htm
</VirtualHost>


Могу я попросить написать, что конкретно вставлять в моём случае вместо /www/domain/subdomaintest и subdomaintest.test.ru ? (так как у меня проблема именно в понимании этого. Шаблонов-то в интернете полно...) И второй вопрос, повторюсь, что потом набирать в командной строке, чтобы зайти на этот самый "сайт"?

Спустя 27 минут, 28 секунд (3.08.2010 - 18:10) Basili4 написал(а):
Я тебе щас все раскажу. А то парни напугали девочку страшными строками.

1. Открываем httpd.conf


Спустя 1 минута, 12 секунд (3.08.2010 - 18:12) Fuksia написал(а):
Цитата (Basili4 @ 3.08.2010 - 18:10)
Я тебе щас все раскажу. А то парни напугали девочку страшными строками.

1. Открываем httpd.conf

Прекрасно laugh.gif

что дальше? smile.gif

Спустя 46 секунд (3.08.2010 - 18:12) Ice написал(а):
Ну вот смотрите, для примера приведу живой файл виртуального хоста

my.conf

Listen 1010
<VirtualHost *:1010>
ServerName my.localhost
DocumentRoot C:/server/home/my
<Directory "C:/server/home/my">
Options Indexes FollowSymLinks Includes MultiViews
AllowOverride All
Allow from All
</Directory>
</VirtualHost>


Хочу обратить Ваше внимание на папку, в которой лежит хост. Она находится ЗА пределами DOCUMENT_ROOT

Этот кусок лежит в отдельном файле my.conf, лежащем там же, где и httpd.conf
Вуаля, нам круто, нам удобно. Наслаждаемся проделанной работой.

Спустя 8 минут, 11 секунд (3.08.2010 - 18:21) Basili4 написал(а):
Я тебе щас все раскажу. А то парни напугали девочку страшными строками.

1. Открываем httpd.conf

2. ищем там строчку
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
раскоментируем строку include траляля

3. открываем файл httpd-vhosts.conf в нем все наши виртуальные хосты

вот пример одной записи там

щас подробно о каждой строчке
<VirtualHost *:80> * ip с котрого можно на него заходить 80 порт на который следует заходить если укажеш не 80 надо будет его указывать в адресной строке вот так http://mysite:порт вот вместо "порт" указаную тобой циферу
DocumentRoot "C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\www\test"
ну это не должно вызвать проблем это какалог где лежит сайт
ServerName test.my это как к нему будем обращатся
ServerAlias www.test.my это псевданим нашего сайта
ErrorLog "logs/test.log" ну тут укажем логи это для ошибок
CustomLog "logs/test.log" common это кусочек лога
</VirtualHost>

вроде все

теперь финт ушами

ишем файл hosts

здесь
C:\WINDOWS\system32\drivers\etc

у меня он имеет вид

# 102.54.94.97 rhino.acme.com # исходный сервер
# 38.25.63.10 x.acme.com # узел клиента x

127.0.0.1 localhost
127.0.0.1 test.my
127.0.0.1 ....my
127.0.0.1 .....my

у тебя будет только одна запись localhost

дописывай строку с именем виртуального хоста и будет все ок

все перегружаем аппач и работаем

Спустя 2 часа, 25 минут, 34 секунды (3.08.2010 - 20:46) linker написал(а):
Чтобы избежать будущих проблем, запомните раз и на всегда '/folder/folder1' - это не относительный путь. Пока в путях пишите подобное будете огребать грабли, а потом решать их костыльными методами.

Спустя 13 часов, 25 минут, 14 секунд (4.08.2010 - 10:11) Fuksia написал(а):
Цитата (linker @ 3.08.2010 - 20:46)
Чтобы избежать будущих проблем, запомните раз и на всегда '/folder/folder1' - это не относительный путь. Пока в путях пишите подобное будете огребать грабли, а потом решать их костыльными методами.

Я сознаю свою непосвящённость в этом вопросе, не спорю, только начала заниматься этими материями. А почему путь '/folder/folder1' не относительный? И как писать правильно? Буду благодарна за маленький ликбез. Просто уже не первый раз сталкиваюсь с этой проблемой.

Basili4 - спасибо за подробную инструкцию, пока не пробовала, как улучу свободную минуту займусь подробной настройкой. О результатах отпишусь.

Ice - также спасибо за инструкцию, приму на вооружение. Только не поняла, файл my.conf создавался вручную (у меня такого нет в этой папке)? Если да, как и где вы прописывали ссылку на него?

Спустя 6 минут, 59 секунд (4.08.2010 - 10:18) Basili4 написал(а):
Fuksia
путь начинающийся с / это путь от корня относительный путь folder/folder1/

Спустя 3 часа, 5 минут, 34 секунды (4.08.2010 - 13:24) Fuksia написал(а):
Цитата (Basili4 @ 4.08.2010 - 10:18)
Fuksia
путь начинающийся с / это путь от корня относительный путь folder/folder1/

Теперь понятно, спасибо.

Тогда ещё вопрос, чтобы устранить некоторые другие непонятки.

Почему html понимает путь от корня как "/folder/folder1/и т.д.",
тогда как php понимает то же самое только через переменную DOCUMENT_ROOT: $_SERVER['DOCUMENT_ROOT']."/folder/folder1/и т.д." ?

Спустя 8 минут, 19 секунд (4.08.2010 - 13:32) Basili4 написал(а):
Fuksia
DOCUMENT_ROOT это директория где находится сайт

если Вы напишите в Пыхе /eddsaf/sdafdasdas то этот путь будет учитываться от
DOCUMENT_ROOT

Спустя 3 минуты, 4 секунды (4.08.2010 - 13:35) Ice написал(а):
Цитата (Fuksia @ 4.08.2010 - 11:11)
Ice - также спасибо за инструкцию, приму на вооружение. Только не поняла, файл my.conf создавался вручную (у меня такого нет в этой папке)? Если да, как и где вы прописывали ссылку на него?

Да, конечно, вручную.
Ух ты про ссылку выскочило что ли, а я и не углядел.
Ссылка прописывается в httpd.conf где-нить в конце:

httpd.conf

##
## Виртуальные хосты
##

Include "C:/путь/до папки/с/апачем/conf/my.conf"

Спустя 13 минут, 49 секунд (4.08.2010 - 13:49) Fuksia написал(а):
Цитата (Basili4 @ 4.08.2010 - 13:32)
Fuksia
DOCUMENT_ROOT это директория где находится сайт

если Вы напишите в Пыхе /eddsaf/sdafdasdas то этот путь будет учитываться от
DOCUMENT_ROOT

Эге... А вот у меня как раз так: /eddsaf/sdafdasdas в php и не работает huh.gif .

На всякий случай, уточню, правильно ли я поняла мысль.
Строки
$_SERVER['DOCUMENT_ROOT']."/folder/folder1/"
и
"/folder/folder1/"
для пхп одинаковы?

Тогда зачем вообще нужна переменная $_SERVER['DOCUMENT_ROOT']? tongue.gif

Ice Ага, теперь мне понятно как это должно работать. Спасиб smile.gif

Спустя 2 часа, 13 секунд (4.08.2010 - 15:49) linker написал(а):
Цитата
если Вы напишите в Пыхе /eddsaf/sdafdasdas то этот путь будет учитываться от
DOCUMENT_ROOT
Ошибка, DOCUMENT_ROOT здесь никоим образом не учитывается, все зависит от операционки и личного аккаунта юзверя.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.