Введение

Для кого предназначена эта статья: новичкам сайтостроителям посвящается, статья познакомит с основами настройки веб-сервера, на примере сервиса Apache, также мы установим на локальной машине PHP, что в связке с Apache представляет мощный и современный комплекс для разработки сайтов любой сложности.

Сначала небольшое вступление. Замечу что, в свое время, отсутствие простой и понятной новичкам информации, по казалось бы элементарным вещам, частенько ставило меня в тупик, будь то изучение языков программирования или администрирование серверов. Дам простой совет, никогда не начинайте изучать детали, пока не уложили в голове общую картину предмета. Например, не старайтесь изучить особенности поведения какого нибудь тега в HTML, пока не уясните что такое "HTML"  в принципе (теперь без запинки произнесите расшифровку аббревиатуры и вдумайтесь в каждое слово).

И так, что такое web-server. В общем все просто, это может быть обычный компьютер, имеющий сетевую карту и подключенный к сети интернет. Единственное отличие "сервера" от вашего компьютера (уверен он у вас подключен к интернету), это то что на этом компьютере установлена специальная программа, которая посылает ответы всем другим компьютерам "клиентам", каждый раз когда клиенты запрашивают с него данные специальным образом.

Что значить "запросить данные" = "запрос". Рассмотрим на примере работы одного из сайтов, например, "ya.ru". Для начала разберемся что физически представляет из себя этот "ya.ru". Для начала запустим командную строку - пуск - выполнить - "cmd" и пропингуем сайт (ввести "ping ya.ru"), на что мы получим ответ от одного из серверов Яндекс вида:

Ответ от 213.180.204.3: число байт=32 время=71мс TTL=51
Ответ от 213.180.204.3: число байт=32 время=71мс TTL=51....

Ясно что в каком-то населенном пункте (который, к слову, можно выяснить по IP через какой-нибудь открытый сервис), стоит абсолютно материальная машина, имеющая как минимум одну сетевую карту, карта имеет IP-адрес 213.180.204.3. С нашего компьютера был послан "запрос" программой "ping.exe" к этому серверу, через 71 миллисекунду программа ping получила ответ от сервера Яндекс, о чем и сообщила нам на экране.

Двигаемся дальше, "пинговать" можно любой компьютер находящийся в сети, конечно если на нем нет запрета на подобные запросы. Отличие web-сервера от обычного компьютера - он может отвечать на так называемые "HTTP-запросы". Как сделать HTTP-запрос к серверу Яндекс? Открываем браузер, я например, Firefox, в строке "адрес" вверху пишем "http://ya.ru", жмем Enter - в этот момент браузер установил сеанс связи с сервером ya.ru по общепринятому для протокола http порту 80, полученный ответ был выведен браузером на экран. Надо заметить, что http перед именем сайта писать в наше время уже необязательно, браузер сам подставит спереди эти четыре буквы перед именем сайта, т.к. подавляющее число web-серверов общается с клиентами именно по протоколу HTTP.

Думаю вы знакомы и с другим протоколом, который сейчас не очень активно используется рядовыми пользователями, это протокол FTP. Этот протокол предназначен для обмена файлами м\у клиентом и сервером. С помощью браузера можно задействовать и его. Например, введя в строку адреса ftp://mirror.yandex.ru/ мы получим список файлов хранящихся на указанном сайте именно по протоколу ftp.

По этому протоколу могут работать и многие файловые менеджеры, например открыв FAR можно добавить этот же ресурс и видеть похожую картинку.


Это я к тому, чтобы вы поняли, что браузер не единственная программа которая может использовать интернет-протоколы.

Разбираемся с аббревиатурой HTTP - HyperText Transfer Protocol — «протокол передачи гипертекста». "Протокол" - некий общепринятый механизм передачи данных, который, как и все другие протоколы, к тому же зафиксирован документально. Читать пока не обязательно, да и в будущем вряд ли понадобится полное описание спецификации, скорей всего какого-нибудь FAQ будет достаточно. Главное уяснить себе, что когда то, несколько лет назад, группа людей (весьма продвинутых в компьютерах и сетях) решила что неплохо было бы всем компьютерам в сети обмениваться информацией по единому стандарту, что облегчит жизнь и разработчикам сайтов и пользователям. Решили что обмен этот будет идти по принципу клиент-сервер, "клиент" (ПК пользователя) создает текстовый "запрос" и направляет его на определенный порт "сервера", назад клиент получает "ответ" в виде текста.

Разберем что такое "запрос" подробней. Запрос в http это одна или несколько строк текста, например, "GET http://www.ya.ru HTTP/1.0" это один из запросов по протоколу http (кстати в т.ч. его и отправляет браузер серверу когда в адресе вы пишите "ya.ru" в строке браузера). Теперь надо как то отправить этот запрос на сервер. Воспользуемся программой которая умеет общаться с серверами telnet.exe, запускается так пуск - выполнить - cmd --> пишем строчку "telnet ya.ru 80" --> enter, чтобы установить сеанс связи с сервером.

Далее вписываем запрос и два раза жмем Enter, в ответ сервер ya.ru передает нам полный текст главной страницы сайта www.ya.ru:

Если запрос вписать не удалось не расстраивайтесь, у меня так же, почему то буквы не прорисовывались в telnet, текст надо или вписывать вслепую или "скопировать - правой в telnet - вставить", и не забываем про двойной enter после того как вставили команду. Замечание: к сожалению описанный пример с сайтом ya.ru теперь не работает, по причине того что сайт как и многие другие теперь работает по протоколу https (последняя буква "s" значит защищенный), поэтому найдите любой другой сайт который еще не на https или поверьте скринам.

Если вы только знакомитесь с принципами работы WEB, то у вас может возникнуть вопрос, как полученные кракозябры в telnet связан с сайтом который мы видим в браузере. Все очень просто, это "внутренность" главной страницы ya.ru, которую браузер представляет нам уже во вполне понятном виде. Убедимся в этом - откроем в браузере сайт ya.ru - правой - "исходный код страницы" - видим что это действительно так:

Теперь мы имеем представление о работе механизма клиент-сервер по протоколу HTTP и подошли вплотную к нашей цели. Наш компьютер должен уметь отвечать на запросы, которые шлют ему клиенты по сети, по протоколу HTTP, на порт 80. Для этого необходимо установить на нашем ПК программу, которая умеет это делать, мы будем ставить программу (она же web-сервер) "Apache". Замечу что это не единственный веб-сервер, есть поклонники windows IIS или nginx и т.п.

Краткое описание компонент

  • Apache - собственно сам web-server, программа, которая устанавливается как "служба" windows, контролирует общепринятый для web порт 80, при поступлении запроса (обычно от браузера) - выдает клиенту исходный текст страницы.
  • PHP (Hypertext Preprocessor - препроцессор гипертекста) - набор библиотек, позволяющий существенно расширить возможности обычного сайта на HTML. С помощью него реализуются такие важные вещи как авторизация, работа с базами данных, динамическое наполнение страниц информацией, интерфейс администратора сайта. Суть подхода заключается во включении в "исходный код" страницы специальных конструкций, на языке PHP. Web-server перед выдачей "исходного кода" клиенту передает текст на обработку PHP модулю, тот в свою очередь выполняет свои скрипты и отдает обратно уже готовую страничку, которая притерпела изменения согласно этих скриптов. Например, модуль может разместить на страничке последние новости или свежий анекдот.
  • MySQL - СУБД (система управления базами данных), специальная программа для хранения различных таблиц с моментальным доступом на чтение и запись. PHP может задействовать эту программу для хранения логинов\паролей, новостей, сообщений с форума и т.д., вплоть до хранения исходного кода страниц и картинок. Можно конечно хранить сообщения с форума в обычном текстовом файле, но когда сообщений будет не 20-30 а 2-3 тысячи - ваш сайт может просто зависнуть. Тут то и приходят на помощь скоростные и отлаженные механизмы доступа к данным, такие как MySQL.

Для простого сайта без авторизации, достаточно поставить только Apache, если же надо реализовать авторизацию - без PHP уже не обойтись. Установку производим в обратном порядке - MySQL, затем PHP, затем Apache, затем запускаем web-server, делаем тестовую страничку и проверяем работу сервера "извне".

Установка MySQL

      Скачиваем пакет по ссылке

http://www.mysql.com/downloads/mysql/

      , скачивайте последнюю версию.



  1. Приступаем к установке. Нажмите в данном окне выборочную установку компонентов "Custom".
    Диалоговое окно выборочной установки компонентов MySQL
  2. Здесь вы можете выбрать дополнительные компоненты и сменить установочную директорию программы.
    Выбор компонентов MySQL и задание директории MySQL
  3. Теперь приступим к настройке MySQL сервера.
    Настройка MySQL-сервера
  4. Выбираем детализированную настройку - "Detailed Configuration".
    Диалоговое окно выбора детализованной настройки MySQL
  5. Отмечаем пункт "Developer Machine".
    Конфигурирование MySQL как сервера для веб-разработок
  6. Выбрав пункт "Multifunctional Database", вы сможете работать как с таблицами типа InnoDB (с возможностью использования транзакций), так и с высокоскоростной MyISAM (как правило для веб-разработок используется именно этот тип таблиц).
    Задание типа баз данных MySQL
  7. Выбор диска и директории для хранения таблиц типа InnoDB.
    Задание директории для хранения таблиц InnoDB
  8. В данном диалоговом окне выбирается максимально возможное количество подключений к серверу MySQL. При выборе "Decision Support (DSS)/OLAP", максимальное количество подключений будет ограничено двадцатью, чего более чем достаточно при установке сервера на домашнем компьютере и отсутствии большого количества одновременных подключений.
    Диалоговое окно задания максимального количества подключений
  9. Отметив "Enable TCP/IP Networking" мы включаем поддержку TCP/IP соединений и выбираем порт, через который они будут осуществляться. Стандартным для сервера MySQL является порт 3306. Отметив "Enable Strict Mode", мы задаем режим строгого соответствия стандарту SQL (данную опцию рекомендуется оставлять включенной).
    Включение поддержки TCP/IP, и задание порта для MySQL-сервера
  10. Обратите внимание на выставление настроек данного окна. Отметив "Manual Selected Default Character Set / Collation" и выбрав из ниспадающего меню "cp1251" определяем, что изначально для таблиц будет использоваться кодировка Cyrillic Windows (cp1251), что означает корректную работу с русским языком в данной кодировке.
    Диалоговое окно задания кодировки
  11. Если отметить "Install As Windows Service", сервер будет запускаться в виде сервиса, что является рекомендуемым способом запуска. Ниже, в ниспадающем списке, задается имя сервиса. Далее, уберите галочку рядом с "Launch the MySQL Server automatically" - мы будем запускать сервер вручную. Также поставьте галочку рядом с "Include Bin Directory in Windows PATH" - это позволит установить видимость директории "bin", для командной строки.
    Выбор способа запуска MySQL-сервера
  12. Установите пароль пользователя "root". Советую сделать это. Поставьте хотя бы какой-нибудь простенький пароль, только не оставляйте поле пустым, это убережёт вас от возможных неприятностей в дальнейшем.
    Установка пароля для пользователя root
  13. В данном окне обратите внимание на строку "Write configuration file", которая указывает на месторасположение конфигурационного файла MySQL - "my.ini", далее, его необходимо будет немного отредактировать.
    Финальное диалговое окно установки MySQL-сервера
  14. Откройте для редактирования файл "my.ini".
    1. В раздел [client], после строки:
      port=3306
      Добавьте строку определяющую каталог содержащий файлы описания кодировок:
      character-sets-dir="C:/Program Files/MySQL/MySQL Server 5.5/share/charsets"
    2. В раздел [mysqld], после строки:
      port=3306
      Добавьте следующие две строки, первая из которых вам уже известна, вторая – устанавливает кодировку в которой данные передаются MySQL:
      character-sets-dir="C:/Program Files/MySQL/MySQL Server 5.5/share/charsets"
      init-connect="SET NAMES cp1251"
    3. Далее, найдите строку:
      default-storage-engine=INNODB
      Замените изначально устанавливаемый тип таблиц на MYISAM:
      default-storage-engine=MYISAM
  15. Сохраните изменения и закройте файл "my.ini".
    Установка и настройка сервера MySQL завершена.

Установка PHP

      Скачиваем пакет по ссылке

http://windows.php.net/download/

      , обратите внимание что нам нужен 'VC9 x86 Thread Safe' вариант.



  1. Распакуйте архив в желаемый каталог (изначально предлагается "C:\php"). Откройте конфигурационный файл содержащий рекомендуемые настройки - "php.ini-development" (находящийся в корне дистрибутива), переименуйте его в php.ini и произведите следующие изменения.


  2. Отредактируем файл php.ini:
    1. Найдите строку:
      post_max_size = 8M
      Увеличьте до 16 Мбайт максимальный размер данных принимаемых методом POST, изменив ее на:
      post_max_size = 16M
    2. Найдите строку:
      ;include_path = ".;c:\php\includes"
      Раскомментируйте ее, убрав перед строкой символ точки с запятой.
      (Внимание исключение! Обратные косые черты при указании пути):
      include_path = ".;c:\php\includes"
      Создайте пустой каталог "C:\php\includes", для хранения подключаемых классов.
    3. Найдите строку:
      extension_dir = "./"
      Установите значением данной директивы путь к папке с расширениями:
      extension_dir = "C:/php/ext"
    4. Найдите строку:
      ;upload_tmp_dir =
      Раскомментируйте ее и укажите в значении следующий путь:
      upload_tmp_dir = "C:/php/upload"
      Создайте пустую папку "C:\php\upload", для хранения временных файлов загружаемых через HTTP.
    5. Найдите строку:
      upload_max_filesize = 2M
      Увеличьте максимально допустимый размер загружаемых файлов до 16 Мбайт:
      upload_max_filesize = 16M
    6. Подключите, расскомментировав, данные библиотеки расширений:
      extension=php_bz2.dll
      extension=php_curl.dll
      extension=php_gd2.dll
      extension=php_mbstring.dll
      extension=php_mysql.dll
      extension=php_mysqli.dll
    7. Найдите строку:
      ;date.timezone =
      Раскомментируйте и установите значением часовой пояс вашего местоположения (список часовых поясов можно найти в документации):
      date.timezone = "Europe/Moscow"
    8. Найдите строку:
      ;session.save_path = "/tmp"
      Раскомментируйте и установите значением данной директивы такой путь:
      session.save_path = "C:/php/tmp"
      Создайте пустую папку "C:\php\tmp" для хранения временных файлов сессий.
    9. Сохраните изменения и закройте файл php.ini.
  3. Далее необходимо добавить каталог с установленным PHP интерпретатором в PATH операционной системы. Для чего пройдите по пути "Start" ("Пуск") -> "Control Panel" ("Панель управления") -> "System" ("Система"), откройте вкладку "Advanced" ("Дополнительно"), нажмите кнопку "Environment Variables" ("Переменные среды"), в разделе "System Variables" ("Системные переменные") сделайте двойной щелчок на строке "Path", добавьте в поле "Variable Value" ("Значение переменной"), к тому что там уже существует, путь к каталогу с установленным PHP, например, "C:\php" (без кавычек). Обратите внимание на то что символ точки с запятой разделяет пути. Чтобы внесенные изменения вступили в силу, перезагрузите операционную систему.
    Пример строки Path:
    %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\php;C:\Program Files\MySQL\MySQL Server 5.5\bin

  4. Установка и настройка PHP интерпретатора – завершена.

  5. Описание подключаемых библиотек:

    php_bz2.dll – С помощью данного расширения PHP сможет создавать и распаковывать архивы в формате bzip2.

    php_curl.dll – Очень важная и нужная библиотека, позволяющая соединяться и работать с серверами, с помощью огромного количества интернет-протоколов.

    php_gd2.dll – Ещё одна незаменимая библиотека, позволяющая работать с графикой. Вы думали на PHP можно только HTML странички генерировать? А вот и нет! С помощью PHP можно почти всё, в том числе и рисовать.

    php_mbstring.dll – Библиотека содержит функции для работы с много-байтными кодировками, к которым относятся кодировки восточных языков (японский, китайский, корейский), Юникод (UTF-8) и другие.

    php_mysql.dll – Имя библиотеки говорит само за себя - она необходима для работы с сервером MySQL.

    php_mysqli.dll – Данная библиотека является расширением предыдущей и содержит дополнительные функции PHP для работы с сервером MySQL версии 4.1.3 и выше.

    Данных библиотек должно хватить для полноценной работы PHP. Со временем, если появится такая необходимость, вы сможете подключить дополнительные библиотеки, но не стоит подключать их все сразу с мыслью, что кашу маслом не испортишь, в данном случае излишнее количество подключенных библиотек может заметно замедлить работу PHP.

Установка Apache

      Скачиваем пакет по ссылке

http://www.apachelounge.com/download/

      , обратите внимание что нам нужен 'Apache 2.4 win32 binaries'.
  1. Распакуйте архив дистрибутива в каталог C:\Apache2.
  2. Откройте в текстовом редакторе файл "C:\Apache2\conf\httpd.conf", являющийся основным конфигурационным файлом сервера Apache.
  3. Правка файла httpd.conf:
    1. Для загрузки модуля mod_rewrite найдите и раскомментируйте (уберите в начале строки символ "#") данную строку:
      LoadModule rewrite_module modules/mod_rewrite.so
    2. Для загрузки PHP интерпретатора, в конец блока загрузки модулей необходимо добавить строку:
      LoadModule php5_module "C:/php/php5apache2_4.dll"
    3. Определите каталог содержащий конфигурационный файл PHP, добавив ниже следующую строку:
      PHPIniDir "C:/php"
    4. Найдите и раскомментируйте строку:
      ServerName www.example.com:80
      Отредактируйте ее следующим образом установив изначальное имя сервера:
      ServerName localhost:80
    5. Найдите строку:
      DocumentRoot "c:/Apache2/htdocs"
      Назначьте корневую директорию управления сайтами (немного позже мы ее создадим):
      DocumentRoot "C:/apache"
    6. Найдите данный блок:
      <Directory />
      Options FollowSymLinks
      AllowOverride None
      Order deny,allow
      Deny from all
      </Directory>

      И замените его на нижеследующий:
      <Directory />
      Options Includes Indexes FollowSymLinks
      AllowOverride All
      Allow from all
      </Directory>
    7. Удалите или закомментируйте первоначальный блок управления директориями (он нам не понадобится), который без комментариев выглядит примерно так:
      <Directory "c:/Apache2/htdocs">
      Options Indexes FollowSymLinks
      AllowOverride None
      Order allow,deny
      Allow from all
      </Directory>
    8. Найдите блок:
      <IfModule dir_module>
      DirectoryIndex index.html
      </IfModule>

      Замените его на:
      <IfModule dir_module>
      DirectoryIndex index.html index.htm index.shtml index.php
      </IfModule>
    9. Найдите строку:
      ErrorLog "logs/error.log"
      Замените на нижеследующую (в этом случае просматривать глобальный файл ошибок сервера будет удобнее):
      ErrorLog "C:/apache/error.log"
    10. Найдите строку:
      CustomLog "logs/access.log" common
      Замените на:
      CustomLog "C:/apache/access.log" common
    11. Для работы SSI (включения на стороне сервера) следующие строки, находящийся в блоке <IfModule mime_module>, необходимо найти и раскомментировать:
      AddType text/html .shtml
      AddOutputFilter INCLUDES .shtml
    12. Добавьте ниже, в тот же блок <IfModule mime_module>, две строки:
      AddType application/x-httpd-php .php
      AddType application/x-httpd-php-source .phps
    13. И, наконец, найдите и раскомментируйте строки:
      Include conf/extra/httpd-mpm.conf
      Include conf/extra/httpd-autoindex.conf
      Include conf/extra/httpd-vhosts.conf
      Include conf/extra/httpd-manual.conf
      Include conf/extra/httpd-default.conf
    14. Сохраните изменения и закройте файл "httpd.conf"


  4. Теперь откройте файл "C:\Apache2\conf\extra\httpd-vhosts.conf" и произведите в нем следующие изменения:

    1. Существующие блоки примеров виртуальных хостов необходимо удалить, и вставить только нижеследующее:
      <VirtualHost *:80>
      DocumentRoot "C:/apache/localhost/www"
      ServerName localhost
      ErrorLog "C:/apache/localhost/error.log"
      CustomLog "C:/apache/localhost/access.log" common
      </VirtualHost>
    2. Сохраните изменения и закройте файл "httpd-vhosts.conf"


  5. Настройка конфигурационныйх файлов завершена, теперь необходимо установить сервис Apache.

  6. Запускаем командную строку и вводим в ней "C:\Apache2\bin\httpd.exe -k install"
    Установка сервиса Apache
  7. Вот что мы должны увидеть при успешной установке сервиса Apache.
    После установки сервиса Apache

Проверка работы сервера

В файле httpd-vhosts.conf мы задали каталог DocumentRoot, который и будет являться хранилищем для нашего первого сайта. Наш сайт, для начала, будет состоять всего из одной страницы. Делаем страничку: создайте в каталоге www текстовый файл 'index.txt', в файл скопируйте код HTML:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1251">
<title>Моя первая страничка</title>
</head>
<body>
Это моя страничка! Apache work!!
</body>
</html>


Сохраните и закройте файл, затем смените ему расширение, чтобы получилось 'index.html'.

Пришло время проверить работоспособность нашего web-сервера. Заходим в браузер и делаем HTTP запрос на свой ПК, а именно, в поле "адрес" пишем вместо названия сайта свой локальный IP адрес (например у вас он может быть 192.168.0.1), а можно просто написать "localhost".
Результат работы Apache

Наш web-сервер ответил на запрос и выдал нам нашу первую страничку.

Проверка работы PHP

Для проверки php необходимо сделать следующее:

  1. Во первых удалите index.html, вместо него создайте текстовый файл index.txt следующего содержания:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=Windows-1251">
    <title>Моя первая страничка</title>
    </head>
    <body>
    Это моя страничка! Apache work!!<br>
    <?php echo "Проверка php, дата на сервере: ".date("Y-m-d H:i:s"); ?>
    </body>
    </html>​
  2. Переименуйте index.txt в index.php (обратите внимание на расширение!).
  3. Проверьте страничку запросив ее с сервера по адресу localhost.
    Результат работы Apache

Дополнительные настройки

  1. Создание структуры каталогов виртуальных хостов

    В корне диска необходимо создать каталог "apache" - в нем будут лежать ваши виртуальные хосты (домены), глобальный файл журнала ошибок "error.log" (создается программой при первом запуске, автоматически), глобальный файл доступа "access.log" (создается автоматически). В каталоге "apache" создаем еще одну пустую папку - "localhost", в которой, в свою очередь, создаем папку "www", именно в последней и надо будет держать наше добро в виде локальных скриптов. Такая, казалось бы странная структура каталогов, продиктована схожей схемой построения каталогов в системах Unix, и призвана упростить в дальнейшем ее понимание и использование.

    Пример создания виртуального хоста
    При необходимости установки собственных виртуальных хостов сделайте следующее:

    Откройте файл "httpd-vhosts.conf", и создайте в нём блок, примерно, следующего содержания:
    <VirtualHost *:80>
    # Папка, в которой будет корень вашего хоста.
    DocumentRoot "C:/apache/test.ru/www"
    # Домен по которому вы сможете обращаться к виртуальному хосту.
    ServerName test.ru
    # Алиас (добавочное имя) домена.
    ServerAlias www.test.ru
    # Файл, в который будут записываться ошибки.
    ErrorLog "C:/apache/test.ru/error.log"
    # Файл журнала доступа к хосту.
    CustomLog "C:/apache/test.ru/access.log" common
    </VirtualHost>


    Затем в каталоге "apache", создайте папку "test.ru" (прямо так, с точкой), в которой, в свою очередь, создайте папку "www".

    Следующий шаг создания виртуального хоста – это изменение файла C:\WINDOWS\system32\drivers\etc\hosts операционной системы. Откройте данный файл и добавьте в него две строки:
    127.0.0.1 test.ru
    127.0.0.1 www.test.ru


    Теперь запустите сервер Apache выполнив в командной строке "C:\Apache2\bin\httpd.exe -k start", откройте браузер, введите в адресной строке "test.ru" или "www.test.ru" и вы окажетесь в своем виртуальном хосте. Только будьте внимательны, теперь вы сможете попасть на оригинальный сайт с именем виртуального хоста ("www.test.ru", если таковой существует), только закомментировав либо удалив строку: "127.0.0.1 www.test.ru", в вышеупомянутом файле "hosts".

    Документация Apache, при запущенном сервере, доступна по адресу http://localhost/manual/

    Остановить работу Apache можно выполнив в командной строке "C:\Apache2\bin\httpd.exe -k stop". При необходимости перезагрузить Apache, выполните в командной строке "C:\Apache2\bin\httpd.exe -k restart".

  2. Создание пакетных файлов для запуска и остановки сервисов

    Согласитесь, что вручную редактировать файл "hosts" при каждом запуске сервисов – это не удобно, поэтому для более удобного, одновременного запуска сервисов Apache, MySQL, и изменения файла "hosts" мы создадим два пакетных файла: на запуск и остановку, которые будут выполнять всю рутинную работу автоматически.

    При использовании виртуальных хостов необходимо создать в директории C:\apache два файла: vhosts-off.txt – содержащий изначальное содержимое файла "hosts" и vhosts-on.txt – содержащий все виртуальные хосты. Обратите внимание, что при создании новых виртуальных хостов вам необходимо будет добавлять их в файл vhosts-on.txt, а не в C:\WINDOWS\system32\drivers\etc\hosts. Посмотрите на примеры ниже.

    Файл vhosts-off.txt (может содержать одну единственную строку):
    127.0.0.1 localhost

    Пример файла vhosts-on.txt с виртуальными хостами www.test.ru и test.ru:

    127.0.0.1 localhost
    127.0.0.1 www.test.ru
    127.0.0.1 test.ru


    В той же директории C:\apache, создайте два пакетных файла: start-webserver.bat – для запуска сервисов и подмены файла "hosts", и stop-webserver.bat – для остановки сервисов и очистки файла "hosts".

    Файл запуска start-webserver.bat:

    @echo off
    echo.
    if not exist C:\apache\vhosts-on.txt goto no_vhosts
    echo Create virtual hosts:
    copy /v /y C:\apache\vhosts-on.txt C:\WINDOWS\system32\drivers\etc\hosts
    echo.
    :no_vhosts
    NET start Apache2.2
    NET start MySQL


    Файл остановки stop-webserver.bat:

    @echo off
    echo.
    if not exist C:\apache\vhosts-off.txt goto no_vhosts
    echo Restore hosts file:
    copy /v /y C:\apache\vhosts-off.txt C:\WINDOWS\system32\drivers\etc\hosts
    echo.
    :no_vhosts
    NET stop Apache2.2
    NET stop MySQL


    В случае если вы не используете виртуальные хосты или хотите запустить сервисы без подмены файла "hosts", просто уберите из директории C:\apache файлы vhosts-on.txt и vhosts-off.txt.

    Одновременно с сервисами удобно запускать программу Apache Monitor, отображающую в системном лотке состояние сервера Apache, для чего можно создать еще один пакетный файл "start-webserver-monitor.bat", содержание которого аналогично файлу "start-webserver.bat" с добавлением в самый конец следующей строки:

    start "" "C:\Apache2\bin\ApacheMonitor.exe"​


    Теперь для запуска всего инструментария вам понадобится запустить файл "start-webserver-monitor.bat", или "start-webserver.bat", а для остановки "stop-webserver.bat". При желании вы можете переименовать эти файлы, переместить их в любое другое место из папки "C:\apache", либо создать на данные файлы ярлыки, например, на рабочий стол.

На этом все, успехов в покорении HTML и PHP!