Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Настройка виртуальных хостов Apache2  (Прочитано 76982 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн zhih

  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Re: Настройка виртуальных хостов Apache2
« Ответ #30 : 17 Мая 2010, 12:52:07 »
Какую ошибку выдаёт?
Я закачала на сервер  curl-7.20.1, распаковала, дала задание ./configure
root@ubuntu:/usr/local/curl-7.20.1# ./configure
checking whether to enable maintainer-specific portions of Makefiles... no
checking whether to enable debug build options... no
checking whether to enable compiler optimizer... (assumed) yes
checking whether to enable strict compiler warnings... no
checking whether to enable curl debug memory tracking... no
checking whether to enable c-ares for DNS lookups... no
checking for sed... /bin/sed
checking for grep... /bin/grep
checking for egrep... /bin/grep -E
checking for ar... no
configure: error: ar not found in PATH. Cannot continue without ar.

Поискала в инете в чем проблема, нашла только то, что такую ошибку выдает если нет "a C development environment". Но ведь у меня же линукс  установлен.. Или я чего-то не понимаю)))

wget --header="Host: www.example.net" http://127.0.0.1/ -O-
Мне  таком случае выходит index.php, который находится в /var/www/br2/, несмотря на та, что, набирая в браузере домен, открывается var/www/
Заметила еще, что в исходном коде index.php во всех ссылках стоит не домен, а ip сервера. Сайт у меня на Joomla, и устанавливала я его еще до того, как зарегистрировала домен. Не знаю, имеет ли это какое-то значение.

М. Тады так, если надо заголовки посмотреть:
wget -S --header="Host: www.example.net" http://127.0.0.1/ -O/dev/null
вот, что выдает...
 
root@ubuntu:~# wget -S --header="Host: www.mysite.com" http://127.0.0.1/ -O/dev/null
--2010-05-17 12:40:56--  http://127.0.0.1/
Connecting to 127.0.0.1:80... connected.
HTTP request sent, awaiting response...
  HTTP/1.1 200 OK
  Date: Mon, 17 May 2010 08:40:56 GMT
  Server: Apache/2.2.12 (Ubuntu)
  X-Powered-By: PHP/5.2.10-2ubuntu6.4
  Set-Cookie: fde8c9a0aacde4bd57dffe1f849ddabf=-; path=/
  Set-Cookie: virtuemart=e5a15a061fe2f3e4b183775d5ac7be91; path=/
  Expires: Mon, 26 Jul 1997 05:00:00 GMT
  Cache-Control: no-store, no-cache, must-revalidate
  Pragma: no-cache
  Last-Modified: Mon, 17 May 2010 08:40:57 GMT
  Cache-Control: post-check=0, pre-check=0
  Vary: Accept-Encoding
  Connection: close
  Content-Type: text/html
Length: unspecified [text/html]
Saving to: `/dev/null'

    [ <=>                                                                  ] 17,900      --.-K/s   in 0s

2010-05-17 12:40:57 (364 MB/s) - `/dev/null' saved [17900]

root@ubuntu:~#

И еще такой вопрос. В /etc/apache2/sites-available название файла моего сайта должно соответствовать домену? То есть, у меня этот файл называется mysite , а не mysite.com   Или это не имеет значения?
« Последнее редактирование: 17 Мая 2010, 13:04:45 от zhih »
With just one foot on just one tiny rope
We set the sails for freedom
Unbending in our determination and, ho, so squarely rigged  We sail to our infinity..

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: Настройка виртуальных хостов Apache2
« Ответ #31 : 17 Мая 2010, 13:15:42 »
configure: error: ar not found in PATH. Cannot continue without ar.Поискала в инете в чем проблема, нашла только то, что такую ошибку выдает если нет "a C development environment". Но ведь у меня же линукс  установлен.. Или я чего-то не понимаю)))
ar находится в пакете binutils. Для установки среды компиляции можно поставить build-essential, который по зависимостям подтянет наиболее используемые утилиты для сборки. НО! Это не важно, незачем собирать curl, если он есть уже скомпилированный в репах. Достаточно sudo aptitude install curl. На будущее: есть очень полезный ресурс, где можно поискать какой файл в каком пакете находится: packages.ubuntu.com.

wget --header="Host: www.example.net" http://127.0.0.1/ -O-
Мне  таком случае выходит index.php, который находится в /var/www/br2/, несмотря на та, что, набирая в браузере домен, открывается var/www/
Тогда wget http://www.example.net -O- должен выдавать тоже самое на любой другой тачке, но... По пути от апача до клиента есть прокси? Кеш браузера чиститился? (можно попробовать перегрузить пагу по ctrl+f5)

И еще такой вопрос. В /etc/apache2/sites-available название файла моего сайта должно соответствовать домену? То есть, у меня этот файл называется mysite , а не mysite.com   Или это не имеет значения?
Нет, это не имеет значения...

Оффлайн zhih

  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Re: Настройка виртуальных хостов Apache2
« Ответ #32 : 17 Мая 2010, 15:20:02 »
ar находится в пакете binutils. Для установки среды компиляции можно поставить build-essential, который по зависимостям подтянет наиболее используемые утилиты для сборки. НО! Это не важно, незачем собирать curl, если он есть уже скомпилированный в репах. Достаточно sudo aptitude install curl. На будущее: есть очень полезный ресурс, где можно поискать какой файл в каком пакете находится: packages.ubuntu.com.
спс!!

Тогда wget http://www.example.net -O- должен выдавать тоже самое на любой другой тачке, но... По пути от апача до клиента есть прокси? Кеш браузера чиститился? (можно попробовать перегрузить пагу по ctrl+f5)
Стала все это проверять и обнаружила в чем прикол)). Если я набираю http://mysite.com , то открывается var/www/, а если http://www.mysite.com, то как и положено открывается var/www/br2/ где и находится мой сайт!!!!!!  
Огромнейшее спс всем за помощь и советы!!!  :)

Я никогда не набирала www перед доменом, не думала, что это существенно.  :-[  Теперь мне остается только разобраться в чем тут разница и как сделать так, чтобы в любом случае открывалась папка var/www/br2/ .  :)


« Последнее редактирование: 17 Мая 2010, 15:23:08 от zhih »
With just one foot on just one tiny rope
We set the sails for freedom
Unbending in our determination and, ho, so squarely rigged  We sail to our infinity..

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: Настройка виртуальных хостов Apache2
« Ответ #33 : 17 Мая 2010, 15:35:05 »
Я никогда не набирала www перед доменом, не думала, что это существенно.  :-[  Теперь мне остается только разобраться в чем тут разница и как сделать так, чтобы в любом случае открывалась папка var/www/br2/ .  :)
Разница в том, что это совершенно другое доменное имя. А если не найден сайт с этим именем, тогда отдаётся дефолтный, который указывает на /var/www. Если надо прописать несколько доменных имен, то основное пишется в директиве ServerName, остальные в ServerAlias. В последней директиве можно перечислить несколько адресов через пробел.

Оффлайн zhih

  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Re: Настройка виртуальных хостов Apache2
« Ответ #34 : 17 Мая 2010, 18:00:04 »
даже и не подозревала, что это разные домены))))
Если надо прописать несколько доменных имен, то основное пишется в директиве ServerName, остальные в ServerAlias.
написала mysite.com в ServerAlias. Теперь все работает как надо!!! Огромное спс всем!!!!!!
With just one foot on just one tiny rope
We set the sails for freedom
Unbending in our determination and, ho, so squarely rigged  We sail to our infinity..

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Re: Настройка виртуальных хостов Apache2
« Ответ #35 : 18 Мая 2010, 01:50:34 »
Цитировать
Поискала в инете в чем проблема, нашла только то, что такую ошибку выдает если нет "a C development environment". Но ведь у меня же линукс  установлен.. Или я чего-то не понимаю)))

apt-get install build-essentialНо это в данном случае не нужно.

Цитировать
Заметила еще, что в исходном коде index.php во всех ссылках стоит не домен, а ip сервера. Сайт у меня на Joomla, и устанавливала я его еще до того, как зарегистрировала домен. Не знаю, имеет ли это какое-то значение.

Может иметь... но если спросить меня, абсолютные ссылки на сайте - зло.

Цитировать
И еще такой вопрос. В /etc/apache2/sites-available название файла моего сайта должно соответствовать домену? То есть, у меня этот файл называется mysite , а не mysite.com   Или это не имеет значения?

Нет. Более того, обрати внимание на названия файлов (линков) сайтов в sites-enabled :)
« Последнее редактирование: 18 Мая 2010, 01:53:08 от AnrDaemon »
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн zhih

  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Re: Настройка виртуальных хостов Apache2
« Ответ #36 : 20 Мая 2010, 21:54:26 »
Может иметь... но если спросить меня, абсолютные ссылки на сайте - зло.
почему?))))

Нет. Более того, обрати внимание на названия файлов (линков) сайтов в sites-enabled :)
ок, спс
With just one foot on just one tiny rope
We set the sails for freedom
Unbending in our determination and, ho, so squarely rigged  We sail to our infinity..

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Re: Настройка виртуальных хостов Apache2
« Ответ #37 : 20 Мая 2010, 22:20:12 »
Может иметь... но если спросить меня, абсолютные ссылки на сайте - зло.
почему?))))

Разваливание сайта на www.site и site в поисковиках, например, как самый часто встречающийся эффект.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн vadim-nsk

  • Старожил
  • *
  • Сообщений: 1318
  • Жить надо так, как горит пламя!
    • Просмотр профиля
    • Linux в Новосибирске
Re: Настройка виртуальных хостов Apache2
« Ответ #38 : 21 Мая 2010, 06:02:03 »
Может иметь... но если спросить меня, абсолютные ссылки на сайте - зло.
почему?))))

Разваливание сайта на www.site и site в поисковиках, например, как самый часто встречающийся эффект.
хмм... всегда пользоваться 301 редиректом через .htaccess не пробовали(вроде уже тыща лет как правило хорошего тона)?
в качестве примера пара строчек для правильного перенаправления, чтоб поисковики запросы не разделяли:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain\.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Re: Настройка виртуальных хостов Apache2
« Ответ #39 : 21 Мая 2010, 14:34:13 »
Я то пользуюсь, но не все такие хитрые.
И правило это звучит, как
<IfModule rewrite_module>
    RewriteEngine On

    RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]
    RewriteRule ^(.*)$ "http://www.example.com/$1" [QSA,R=301,L]

    RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]
    RewriteRule ^index\.php$ "http://www.example.com/" [QSA,R=301,L]
</IfModule>

Ибо в твоём варианте, если в запросе есть GET-параметры, посетитель окажется неизвестно где.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн vadim-nsk

  • Старожил
  • *
  • Сообщений: 1318
  • Жить надо так, как горит пламя!
    • Просмотр профиля
    • Linux в Новосибирске
Re: Настройка виртуальных хостов Apache2
« Ответ #40 : 21 Мая 2010, 17:00:21 »
:) заметьте я не сказал рабочие :)

Оффлайн censor

  • Старожил
  • *
  • Сообщений: 1126
    • Просмотр профиля
Re: Настройка виртуальных хостов Apache2
« Ответ #41 : 23 Мая 2010, 05:29:40 »
не хочется заводить новую тему, напишу здесь... никак не могу настроить виртуальные хосты (как же я это ненавижу делать каждый раз!!! Ыыыыы....). Точнее виртуальный хост с именем localhost. Два других вирт. хоста нормально работают. Попробую описать всё через консоль:
1. Содержимое /etc/hosts:
zeleniy@zeleniy-laptop:/etc/apache2$ cat /etc/hosts
127.0.0.1 localhost blog templater zeleniy-laptop
127.0.1.1 zeleniy-laptop

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
Вроде всё нормально.
2. Папки хостов:
zeleniy@zeleniy-laptop:/etc/apache2$ ls /var/www/blog/ /var/www/localhost/ /var/www/templater/
/var/www/blog/:
cache/  config.php*  error.log*  ezComponents@  lib/  logs/  templates/  wwwroot/
/var/www/localhost/:
cgi-bin/  classes/  custom.log*  error.log*  locale/  logs/  wwwroot/  XProfile/
/var/www/templater/:
docs/  dumps/  locale/  logs/  modules/  scripts/  tpl/  wwwroot/
Папка wwwroot/ везде присутствует.
3. Конфиги виртуальных хостов:
zeleniy@zeleniy-laptop:/etc/apache2$ cat sites-available/blog sites-available/localhost sites-available/templater

NameVirtualHost 127.0.0.1:80
<VirtualHost 127.0.0.1:80>
    DocumentRoot /var/www/blog/wwwroot
    ServerName blog
</VirtualHost>

NameVirtualHost 127.0.0.1:80
<VirtualHost 127.0.0.1:80>
    DocumentRoot /var/www/localhost/wwwroot
    ServerName localhost
</VirtualHost>

NameVirtualHost 127.0.0.1:80
<VirtualHost 127.0.0.1:80>
    DocumentRoot /var/www/templater/wwwroot
    ServerName templater
</VirtualHost>

При заходе на http://blog/ и http://templater/ всё нормально - вижу то, что должен. При заходе на http://localhost/ получаю 404-ую, а в /var/log/apache2/error.log сыпется одно и тоже:
[Sat Jan 09 02:02:13 2010] [error] [client ::1] File does not exist: /htdocs
[Sat Jan 09 02:02:15 2010] [error] [client ::1] File does not exist: /htdocs
[Sat Jan 09 02:02:16 2010] [error] [client ::1] File does not exist: /htdocs
Какой htdocs ? Где он видит хоть упоминание о нём - непонятно. Где он пытается его найти - тож не ясно... Что делать ? Поможите, а ..?
настройки для домена localhost он берет из /etc/apache2/sites-available/default т.к. в него симлинк в каталоге енабле имеет имя 000-default и у него самый высокий приоритет загрузки
и вообще странное имя для виртуального сервера, не удивительно что проблемы возникли

Пользователь решил продолжить мысль 23 Мая 2010, 04:03:17:
Я то пользуюсь, но не все такие хитрые.
И правило это звучит, как
<IfModule rewrite_module>
    RewriteEngine On

    RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]
    RewriteRule ^(.*)$ "http://www.example.com/$1" [QSA,R=301,L]

    RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]
    RewriteRule ^index\.php$ "http://www.example.com/" [QSA,R=301,L]
</IfModule>

Ибо в твоём варианте, если в запросе есть GET-параметры, посетитель окажется неизвестно где.
а нафига
RewriteRule ^index\.php$ "http://www.example.com/" [QSA,R=301,L]
если есть
RewriteRule ^(.*)$ "http://www.example.com/$1" [QSA,R=301,L]
« Последнее редактирование: 23 Мая 2010, 06:05:22 от censor »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Re: Настройка виртуальных хостов Apache2
« Ответ #42 : 23 Мая 2010, 06:09:49 »
настройки для домена localhost он берет из /etc/apache2/sites-available/default т.к. в него симлинк в каталоге енабле имеет имя 000-default и у него самый высокий приоритет загрузки
Было бы желание, можно любой сайт выше дефолта поставить. Не аргумент. (И нафига было квотить всю портянку?)

Цитировать
и вообще странное имя для виртуального сервера, не удивительно что проблемы возникли

А вот тут соглашусь.

Цитировать
а нафига
RewriteRule ^index\.php$ "http://www.example.com/" [QSA,R=301,L]
если есть
RewriteRule ^(.*)$ "http://www.example.com/$1" [QSA,R=301,L]

А подумай... почитай внимательно...
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн censor

  • Старожил
  • *
  • Сообщений: 1126
    • Просмотр профиля
Re: Настройка виртуальных хостов Apache2
« Ответ #43 : 23 Мая 2010, 06:25:36 »
Было бы желание, можно любой сайт выше дефолта поставить. Не аргумент. (И нафига было квотить всю портянку?)
можно не спорю, но автор вопроса этого судя по всему не знал
портянку заквотил потомучто пост на предыдущей станице форума (а если честно, то лениво было убирать. чукча не читатель, чукча писатель :) )
А подумай... почитай внимательно...
мод реврайт полностью не осилил, но склько хватило познаний
<IfModule rewrite_module>
    RewriteEngine On

    # Если обращаются не к основному www.example.com (а к одному из алиасов)
    # заменяем %HTTP_HOST на основной сайт, строка %REQUEST_URI остается неизменной
    RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]
    RewriteRule ^(.*)$ "http://www.example.com/$1" [QSA,R=301,L]

    # Если обращаются к основному www.example.com, перенаправляем пользователя на index.php
    RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]
    RewriteRule ^index\.php$ "http://www.example.com/" [QSA,R=301,L]
</IfModule>
суть последнего действия просто скрыть несуществующие странцы, но зачем?
ЗЫ не помню важна ли очередность правил

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Re: Настройка виртуальных хостов Apache2
« Ответ #44 : 23 Мая 2010, 06:30:48 »
Порядок важен.
Последняя проверка изложена неверно.

# Обращаются на основное имя...
    RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]
# ...и запрашиваемый путь совпадает с index.php ...
    RewriteRule ^index\.php$ "http://www.example.com/" [QSA,R=301,L]
# ...скрыть index.php и притвориться, что так всегда и былО.

На отлов несуществующих страниц у меня ErrorHandler стоит :)
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

 

Страница сгенерирована за 0.061 секунд. Запросов: 25.