ryg

Настройка виртуальных серверов Vhosts.conf

Перед началом изменений системных файлов рекомендую настроить и использовать Time Machine

После настройки apache и установки mysql и phpMyAdmin доступ к Вашим сайтам будет иметь вид:

       http://localhost/sitename

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

       http://sitename.local

Для этого необходимо внести изменения в файлы :

/etc/hosts                                 ( в данном файле mac OS X хранит связи между именем домена и его ip адресом)
/etc/apache2/httpd.conf                    (здесь хранятся настройки apache для Apple OS X)
/etc/apache2/conf/extra/httpd-vhosts.conf  (в этом файле находятся настройки виртуального хостинга и сайтов размещенных на локальном компьютере)

 

В файле настроек apache etc/apache2/httpd.conf

снимаем комментарий со следующей строки 

	sudo nano /etc/apache2/httpd.conf

#Include conf/extra/httpd-vhosts.conf"

Данная строка говорит серверу о необходимости включить в свое содержимое файл настроек виртуального хостинга и записанные в этом файле параметры

открываем файл etc/apache2/extra/httpd-vhosts.conf

	sudo nano /etc/apache2/extra/httpd-vhosts.conf

В нем необходимо описать все локальные сайты после внесения изменений прямой доступ по адресу
http:://localhost/site
может перестать работать и будет выдаваться ошибка 403, но при нормальных настройках доступ через данный адрес должен сохраниться. (Это происходит в том случае если первым не идет описание самого localhost!!!

Первая строка файла httpd-vhosts.conf

     NameVirtualHost *:80

Первым описанием сайтов должен стать localhost и минимальные описания его следующие:

<VirtualHost *:80>
     ServerName localhost
     DocumentRoot "/Users/USERNAME/sites"  
</VirtualHost>

Примерное полное содержимое файла должно выглядеть так

NameVirtualHost *:80	
<VirtualHost *:80>
	ServerName localhost
	ServerAdmin mymail@mysite.ru
	DocumentRoot "/Users/USERNAME/sites"  
	ErrorLog "/Users/USERNAME/sites/error.log"
	<Directory "/Users/USERNAME/sites">
	      Options Indexes FollowSymLinks
	      AllowOverride All
	      Order allow,deny
	      Allow from all
	</Directory>
</VirtualHost>
	
<VirtualHost *:80>
	ServerName phpMyAdmin.local
	ServerAdmin mymail@mysite.ru
	DocumentRoot "/Users/USERNAME/sites/phpMyAdmin"  
	ErrorLog "/users/USERNAME/sites/phpMyAdmin/phpMyAdmin-error.log"
	<Directory "/users/USERNAME/sites/phpMyAdmin">
		Options Indexes FollowSymLinks
		AllowOverride All
		Order allow,deny
		Allow from all
	</Directory>	
</VirtualHost>
		

Где USERNAME - имя пользователя в Mac OS X и соответственно путь к сайту в папке пользователя sites. По данному шаблону необходимо описать все сайты установленные на локальном компьютере.

Осталось внести изменения в файл /etc/hosts 

В нем содержится информация о связи IP адреса и имени сайта, данный файл присутствует в практически любой операционной системе. Редактирование файла хостов позволяет делать следующие вещи:

  • описывать локальные сайты (установленные на данном компьютере)
  • блокировать веб-сайты
  • блокировать IP-адреса

Для изменения его в Apple Mac OS X требуется административный пароль

	sudo nano /etc/hosts

Добавляем или исправляем строки по всем сайтам по следующему образцу:

     127.0.0.1   localhost
     127.0.0.1   phpMyAdmin.local

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

Отредактировать данный файл можно и более простым способом. Для этого необходимо скачать и установить пакет Hosts.prefpane. 

Он позволит легко и без проблем редактировать файл в Системных настройках, что гораздо легче и более удобно чем редактор nano в Терминале

Для этого скачиваем последнюю версию установочного пакета по адресу: https://github.com/specialunderwear/Hosts.prefpane/downloads

И устанавливаем его. После установке у вас в Системных Настройках появится новая иконка Hosts.

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

Может потребоваться сброс кэша настроек

	sudo dscacheutil -flushcache

Перезапускаем apache

	sudo apachectl restart

Все должно заработать

Замечание: Иногда возможен глюк связанный с кэшем, когда все правильно настроено, а сайт не виден в браузере, хотя пингуется. Попробуйте обратиться к нему через явное указание протокола. Например http://phpMyAdmin.local

Дополнительные ссылки:

Редактор nano
Все команды терминала
Настройка и исправление ошибок Time Machine