пятница, 28 июня 2013 г.

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

Если мы хотим хранить свои проекты в другой папке (например, Мои документы) или локальная версия сайта должна работать при переходе по адресу www.blog.ru вам необходимо разобраться с настройкой виртуальных хостов, об этом и пойдет речь в данном подразделе.

Предположим наш сайт должен храниться на диске C в папке my_projects (C:\my_projects), в браузере он должен открываться по адресу www.blog.local или blog.local.

Создадим в папке my_projects папку с названием blog.local, в ней создадим папки www и logs. В папку www положим наш тестовый скрипт index.php.

Вот так это будет выглядеть в файловой системе Windows:


Теперь перейдем к настройке виртуальных хостов. Открываем в текстовом редакторе файл httpd-vhosts.conf, расположенный по следующему адресу: C:\xampp\apache\conf\extra.

Примечание: рекомендую для большего удобства создать сразу ярлык для этого файла, например в папке C:\xampp, чтобы потом можно было быстро добавлять новые виртуальные хосты.

Все что находится в файле httpd-vhosts.conf мы трогать не будем, а просто добавим наши хосты (просто скопируйте и вставьте в файл приведенный ниже код):

NameVirtualHost *:80


    DocumentRoot "C:\xampp\htdocs"
    ServerName localhost



    ServerAdmin webmaster@blog.local
    DocumentRoot "C:\my_projects\blog.local\www"
    ServerName blog.local
    ServerAlias www.blog.local
    ErrorLog "C:\my_projects\blog.local\logs\error.log"
    CustomLog "C:\my_projects\blog.local\logs\access.log" combined
 
    AllowOverride All
    Order allow,deny
    Allow from all
 


Верхний виртуальный хост, выделен другим цветом, позволит нам по прежнему заходить на localhost (локальный сайт XAMPP).

Следующим шагом нам потребуется добавить две строчки в файл hosts, расположенный по следующему адресу C:\Windows\System32\drivers\etc\hosts (также рекомендую создать для него ярлык в папке сервера):

127.0.0.1     blog.local
127.0.0.1     www.blog.local
Заходим в панель управления XAMPP (XAMPP Control Panel) и перезапускаем Apache. Теперь проверим наш сайт, который должен работать по адресу www.blog.local. Если все сделано верно, то мы увидим приветствие "Hello world!".

Так как скорее всего понадобится создание нескольких сайтов на локальном сервере, приведу пример добавления хостов в файл httpd-vhosts.conf. Предположим новый сайт будет называться site.local:

NameVirtualHost *:80


    DocumentRoot "C:\xampp\htdocs"
    ServerName localhost



    ServerAdmin webmaster@blog.local
    DocumentRoot "C:\my_projects\blog.local\www"
    ServerName blog.local
    ServerAlias www.blog.local
    ErrorLog "C:\my_projects\blog.local\logs\error.log"
    CustomLog "C:\my_projects\blog.local\logs\access.log" combined
 
    AllowOverride All
    Order allow,deny
    Allow from all
 




    ServerAdmin webmaster@site.local
    DocumentRoot "C:\my_projects\site.local\www"
    ServerName site.local
    ServerAlias www.site.local
    ErrorLog "C:\my_projects\site.local\logs\error.log"
    CustomLog "C:\my_projects\site.local\logs\access.log" combined
 
    AllowOverride All
    Order allow,deny
    Allow from all
 


Также не забываем добавить следующие строчки в файл hosts в папке Windows:

127.0.0.1     site.local
127.0.0.1     www.site.local
Перезапускаем Apache и новый хост готов для работы.

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

Немного справочной информации относительно того, что мы добавляем в файл httpd-vhosts.conf:

ServerAdmin webmaster@blog.local - e-mail-адрес администратора веб-сервера;

DocumentRoot "C:\my_projects\blog.local\www" - путь к папке с сайтом;

ServerName blog.local - название сайта, которое набирается в браузере, может иметь любое значение, например blog или blog.ru;

ServerAlias www.blog.local - адрес по которому сайт также должен открываться;

ErrorLog "C:\my_projects\blog.local\logs\error.log" - журнал ошибок;

CustomLog "C:\my_projects\blog.local\logs\access.log" combined - журнал доступа к сайту, кто и когда заходил на сайт и с какого браузера, combined - означает, что отчет будет более информативным, можно заменить значением common (менее информативно);


  AllowOverride All
  Order allow,deny
  Allow from all

Приведенная выше конструкция разрешает отображение всех файлов в указанной директории и назначает максимально возможные привилегии (без AllowOverride All не будут работать ЧПУ).

Если делали все внимательно, то создание новых сайтов на виртуальном сервере не составит для вас труда, ошибки могут быть из-за синтаксиса, к примеру если вы допустите ошибку в httpd-vhosts.conf, Apache может просто не запустится. Для анализа ошибок воспользйтесь логами Apache, файл error.txt расположенный в по адресу C:\xampp\apache\logs.

0 коммент.:

Отправить комментарий