Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Apache

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: virtualhost перебивают друг друга
 
 автор: sl1p   (09.07.2011 в 17:28)   письмо автору
 
 

в настройках записи по типу:


<VirtualHost *:80>
     ServerAdmin yamba@localhost
     DocumentRoot "${path}/projects/yamba/www"
     ServerName yamba
     ServerAlias yamba
     ErrorLog "${path}/projects/yamba/error.log"
     CustomLog "${path}/projects/yamba/access.log" common
 </VirtualHost>

<VirtualHost *:80>
     ServerAdmin mariage@localhost
     DocumentRoot "${path}/projects/marriage/www"
     ServerName marriage
     ServerAlias marriage
     ErrorLog "${path}/projects/marriage/error.log"
     CustomLog "${path}/projects/marriage/access.log" common
     
      #for joomla shutup
     php_value error_reporting 0
 </VirtualHost>


в hosts соответственно

127.0.0.1        marriage
127.0.0.1        yamba


проблема в том что независимо от того что вызывается yamba || marriage видит только yamba, т.е. самый верхний virtualhost в конфиге.
Как бы это поправить?.. На работе та же сборка, только конфиг заново писал, никак домой не могу притащить чтобы сравнить :)

Если так сразу не очевидно могу приложить остальной конфиг.

  Ответить  
 
 автор: cheops   (09.07.2011 в 17:40)   письмо автору
 
   для: sl1p   (09.07.2011 в 17:28)
 

Вообще говоря странно, может сервер остался не перезагруженным? О какой операционной системе идет речь?

  Ответить  
 
 автор: sl1p   (09.07.2011 в 18:36)   письмо автору
 
   для: cheops   (09.07.2011 в 17:40)
 

винда)

ну он сам перезагружается как только изменяется конфиг, и вручную перезагружал - ничего.

  Ответить  
 
 автор: cheops   (09.07.2011 в 18:41)   письмо автору
 
   для: sl1p   (09.07.2011 в 18:36)
 

А винда какая (XP, Vista, 7)?

  Ответить  
 
 автор: sl1p   (12.07.2011 в 14:37)   письмо автору
 
   для: cheops   (09.07.2011 в 18:41)
 

XP3

  Ответить  
 
 автор: cheops   (12.07.2011 в 16:38)   письмо автору
 
   для: sl1p   (12.07.2011 в 14:37)
 

Тогда не должно быть сюрпризов с 127.0.0.1. Попробуйте вместо * явно прописать IP-адреса.

  Ответить  
 
 автор: soldier   (10.07.2011 в 10:59)   письмо автору
 
   для: sl1p   (09.07.2011 в 17:28)
 

в hosts соответственно

127.0.0.1 marriage
127.0.0.1 yamba

здесь должно быть так :

127.0.0.1 marriage
127.0.0.2 yamba


если изменялись дефолтные пути к корневым каталогам то проверить еще и конфиг httpd.conf

  Ответить  
 
 автор: sl1p   (10.07.2011 в 14:25)   письмо автору
 
   для: soldier   (10.07.2011 в 10:59)
 

тю а какая разница в каком порядке в хостс?..

127.0.0.1 marriage
127.0.0.1 yamba


Если вызываться будет явно yamba неужели сеньор компутер остановится на marriage?)

  Ответить  
 
 автор: soldier   (11.07.2011 в 10:38)   письмо автору
 
   для: sl1p   (10.07.2011 в 14:25)
 

разница в том что два домена имеют у вас на локалхосте один IP, разведите их по разным адресам.

  Ответить  
 
 автор: sl1p   (12.07.2011 в 14:34)   письмо автору
 
   для: soldier   (11.07.2011 в 10:38)
 

От безисходности проверил, ничего.
Это совсем не в тему)

Какая разница что они идут на один ип и тем более в каком порядке.
я обращаюсь к серверу ни как "127.0.0.1" а как "http://marriage/" или "http://yamba/".

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

  Ответить  
 
 автор: soldier   (12.07.2011 в 15:21)   письмо автору
 
   для: sl1p   (12.07.2011 в 14:34)
 

Это снаружи так работает, а изнутри тем более под виндой без прописи в hosts работать не будет, поскольку доменами рулит DNS, а здесь локалхост. Потом такой вопрос, зачем в конфиге vhost запиханы php скрипты?

  Ответить  
 
 автор: A   (14.07.2011 в 00:48)
 
   для: soldier   (12.07.2011 в 15:21)
 

Работать будет, это не php скрипты, а настройки php, так что написано все правильно, возможно, не включен виртуальный хостинг для этих ипшников.

Нужно посмотреть выше по конфигу, если ли там директива NameVirtualHost, если ее нет, дописать

NameVirtualHost *:80

  Ответить  
 
 автор: soldier   (14.07.2011 в 15:49)   письмо автору
 
   для: A   (14.07.2011 в 00:48)
 

Откровенно говоря настройки PHP в php.ini находятся. к чему их впихивать в конфиг виртуального хоста?

  Ответить  
 
 автор: cheops   (14.07.2011 в 15:54)   письмо автору
 
   для: soldier   (14.07.2011 в 15:49)
 

Это очень часто делают, особенно при организации виртуального хостинга... вы просто иначе не сможете сделать так, чтобы скрипты одного сайта не имели доступ к скриптам другого. У одного сайта были бы включены ошибки по умолчанию, у друого - отключены. Не применительно к задаче, а справедливости ради, нужно сказать, что практика очень широко распространена.

  Ответить  
 
 автор: soldier   (15.07.2011 в 11:14)   письмо автору
 
   для: cheops   (14.07.2011 в 15:54)
 

Не совсем понял. каким образом могут пересекаться скрипты расположенные в разных подкаталогах?

  Ответить  
 
 автор: cheops   (15.07.2011 в 11:25)   письмо автору
 
   для: soldier   (15.07.2011 в 11:14)
 

Допустим на хостинге хоститься несколько сайтов, принадлежащих разным владельцам, они расположены в виртуальных хостах и в соседних папках. Если не запретить обращение скриптовиз одного виртуального хоста в другой, скрипты одного сайта могут (случайно или намерено) повредить/изменить/прочитать скрипты другого сайта. Чтобы этого не происходило, директиву open_basedir прописывают на уровне виртуальных хостов, назначая каждому отдельному виртуальному хосту папку этого виртуального хоста. Поэтому PHP не может лазить в соседние виртуальные хосты, править логи и вообще хозяйничать на сервере. Точно также можно назначать другие директивы, например, установить всем лимиты памяти и времени исполнения скрипта, а обслуживающим файлам хостинга их снять.

  Ответить  
 
 автор: soldier   (15.07.2011 в 11:58)   письмо автору
 
   для: cheops   (15.07.2011 в 11:25)
 

Но директива open_basedir находится в php.ini зачем ее прописывать явно в конфигурационном файле виртуального хоста если можно включить/выключить данную функцию в глобальных настройках?

  Ответить  
 
 автор: cheops   (15.07.2011 в 12:12)   письмо автору
 
   для: soldier   (15.07.2011 в 11:58)
 

В php.ini вы можете включить её только для одной директории, а хостов у вас несколько - как вы запретите выходить PHP из нескольких директорий, не размещая эту директиву на уровне виртуальных хостов? Это когда вам сервер безраздельно принадлежит, кажется, что проблемы нет, на хостинге - это довольно жесткая проблема. Да и удобно это с организационной точки зрения, вам все-равно виртуальный хост нужно прописывать и директорию назначения в нем, тут же можно создать настройки безопасности с указанием того же самого пути. Поверьте все хостинги именно так и поступают.

http://softtime.ru/article/index.php?id_article=97

  Ответить  
 
 автор: soldier   (15.07.2011 в 12:45)   письмо автору
 
   для: cheops   (15.07.2011 в 12:12)
 

То есть ограничить выполнение скриптов в пределах каталога возможно дописав в конфиг виртуального хоста для каждого доммена следующую строку:
php_admin_value open_basedir C:/AppServ/www/zzz ?

  Ответить  
 
 автор: cheops   (15.07.2011 в 12:50)   письмо автору
 
   для: soldier   (15.07.2011 в 12:45)
 

Совершенно верно.

  Ответить  
 
 автор: soldier   (15.07.2011 в 12:59)   письмо автору
 
   для: cheops   (15.07.2011 в 12:50)
 

Век живи век учись опробовал на практире работает. Спасибо за науку

  Ответить  
 
 автор: sl1p   (15.07.2011 в 00:12)   письмо автору
 
   для: A   (14.07.2011 в 00:48)
 

>NameVirtualHost *:80

точно!) спасибо, директива была но NameVirtualHost localhost

-------------------------------------------------------------
2soldier
> Это снаружи так работает, а изнутри тем более под виндой без прописи в hosts работать не будет, поскольку доменами рулит DNS, а здесь локалхост.

я может не правильно выразился, тем неменее это работает.
http://yamba/ = /projects/yamba/www
http://marriage/ = /projects/marriage/www
и т.д.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования