apache ubuntu Настройка виртуального хоста -- сайта на локальной машине. Инструкция

ПРИМЕЧАНИЕ: Если вы добавляете уже не первый виртуальный хост, учитывайте что под каждый хост (сайт) требуется создавать свой конфигурационный файл.

Настройка виртуального хоста

Apache уже поставляется с виртуальным хостом 000-default.conf, использующимся по умолчанию. Мы создадим еще один файл конфигурации с имененем вида:

SITENAME.loc.conf

где:

  • SITENAME -- вместо этой строки (здесь и далее) предлагается указать имя вашего сайта (обычно латинскими маленькими буквами).
    Например: если вы хотите развернуть локальную копию сайта example.com, то лучше чтобы не путаться на локальной машине присвоить егму домен example.loc (то есть в этом случае мы как бы сделали замену SITENAME = example)

-- этот конфигурационный файл (c именем, например, mysite.loc.conf) будет использоваться для нашего домена mysite.loc и содержать информацию о его настройках, для этого выполним команду создания и одновременно открытия на редактирования этого файла (используется утилита nano):

sudo nano /etc/apache2/sites-available/SITENAME.loc.conf 

Затем разместим в файле информацию о настройках, минимальный конфиг:

<VirtualHost *:80>
    ServerName SITENAME.loc

    DocumentRoot /var/www/имяпапкисайта
    <Directory /var/www/имяпапкисайта>
        AllowOverride All
    </Directory>

    CustomLog /var/log/apache2/SITENAME.access.log common  
    ErrorLog  /var/log/apache2/SITENAME.error.log
    LogLevel warn
</VirtualHost>

Или можно еще указать какое-то дополнительное имя сайта (не обязательно) с помощью опции

-- в настройках выше предлагается (сделано):

  1. имяпапкисайта -- имя папки, в которой лежит index.php (или иной т.н. скрипт по-умолучанию, подробнее см. в примечании ниже)
  2. /var/log/apache2/ -- стандартная папка в ubuntu для хранения логов apache.

И сохраним его.

ПРИМЕЧАНИЕ: Значение, которые мы указываем для параметра DocumentRoot (напр /var/www/mysite22) называют "корнем сайта" (а директорию называют "корневой"), т. к. именно от нее отсчитывают отностельные URL разных ресурсов/страниц сайта.

Разрешаем обращаться к домену

Для того чтобы использовать домен необходимо выполнить следующую команду, которая создает символическую ссылку из sites-available/ в sites-enabled/ для активации созданного Вами виртуального хоста:

sudo a2ensite SITENAME.loc

После чего перезагружаем Apache:

sudo service apache2 reload

Правка в hosts

Далее добавим в hosts:

sudo nano /etc/hosts

строчку:

127.0.0.1 SITENAME.loc

-- это добавление скажет нашей операционной системе, что сайт SITENAME.loc (с таким доменным имененем) лежит на нашей же машине.

Куда помещать файлы сайта

Теперь размещать файлы можно в папке:

/var/www/

А для настроенного нами сайта в:

/var/www/SITENAME

(на самом деле имя папки может быть вообще любым -- но важно чтобы именно пусть к ней был указан в опциях DocumentRoot и Directory конфиг. файла вашего виртуального хоста (см. пример выше -- но для понятности имя папки часто делают похожим на имя домена).

Как открыть сайт в браузере

Посмотрим выше -- в конфиге виртуального хоста мы написали что-то вроде:

ServerName  site2.loc

(т.е. взяли фактически что SITENAME = site2.loc)
-- тогда то же самое доменное имя (у меня site2.loc) мы должны были связать с ip локальной машины в файле hosts:

127.0.0.1 site2.loc

-- после всего этого мы можем открыть сайт в браузере, набрав в адресной строке:
http://site2.loc

Автоматическое создание хоста (не для начинающих)

Есть и автоматизированное средство.

Видео-пояснения

Key Words for FKN + antitotal forum (CS VSU):

vedro-compota's picture

например:

site firstsite.loc does not exist?

Убетесь, что имя конфигурационного файла для виртуального хоста имеет вид:

SITENAME.loc.conf

(см. подробности выше)

_____________
матфак вгу и остальная классика =)

vedro-compota's picture

читайте про работу (настройку) через fpm: http://fkn.ktu10.com/?q=node/11139

_____________
матфак вгу и остальная классика =)

vedro-compota's picture

если нужно указать несколько доменных имен можно использовать псевдонимы (один или несколько), которые задаются через опцию ServerAlias:

<VirtualHost *:80>
    ServerName SITENAME.loc
    ServerAlias  SITENAME2

    DocumentRoot /var/www/имяпапкисайта
    <Directory /var/www/имяпапкисайта>
        AllowOverride All
    </Directory>

    CustomLog /var/log/apache2/SITENAME.access.log common  
    ErrorLog  /var/log/apache2/SITENAME.error.log
    LogLevel warn
</VirtualHost>

_____________
матфак вгу и остальная классика =)