Σ публикаций: 133
#лучшедома
Любые ответы на любые вопросы!

Установка и настройка WEB-сервера Apache HTTP Server 2.2.14. Подключение модулей Apache, создание виртуального хоста

логотип сервера APACHEСайт разработчика: https://www.apache.org/
Дистрибутив: https://www.apache.org/dist/httpd/binaries/win32/httpd-2.2.15-win32-x86-no_ssl.msi

Вот он – великий и ужасный. Сгубивший на своём веку множество начинающих веб-разработчиков, сложивших головы на настройке его конфигурационных файлов. :) Но мы с вами люди, крепких нервов и стальных желудков, поэтому, поехали.

Установка веб-сервера Apache в картинках

 

Начало установки Apache в мастере
Заполните форму, как показано на картинке.

Выбор типа установки Apache


При выборе "Typical" установится все необходимое для полноценной работы сервера.

Выбор каталога для установки сервера 


В данном окне вы можете выбрать каталог для установки сервера.

 

Если всё прошло успешно, в панели задач, рядом с часами, должен появиться значок пера с синей стрелочкой, обозначающий запущенный сервис Apache. Но не радуйтесь, это только начало. :)

Сперва щелкаем на значке пера в панели задач правой кнопкой мышки и выбираем "Open Services". В открывшемся окне управления служб выбираем строку "Apache2.2" и делаем на ней двойной щелчок, после чего во вкладке "General" ("Общие") выбираем ручной запуск сервиса - "Startup type: Manual" ("Тип запуска: вручную"). Это необходимо сделать для того, чтобы лишние службы не загружали систему. Учитывая, что домашний компьютер используется не только для веб-разработок, но и для многих других нужд, ручной запуск и остановка, непостоянно используемых сервисов, является наиболее приемлемым.

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

Далее в директории, куда был установлен Apache, необходимо найти и открыть в текстовом редакторе файл "conf\httpd.conf", являющийся основным конфигурационным файлом сервера Apache. Ну а теперь держитесь. Женщинам, старикам и детям просьба – дальше не читать. За психическое состояние людей, дочитавших статью до конца – авторы ответственности не несут. :)

Правка файла httpd.conf

  1. Для загрузки модуля mod_rewrite найдите и раскомментируйте (уберите в начале строки символ "#") данную строку:
    LoadModule rewrite_module modules/mod_rewrite.so
  2. Для загрузки PHP интерпретатора, в конец блока загрузки модулей необходимо добавить строку:
    LoadModule php5_module "C:/php/php5apache2_2.dll"
  3. Определите каталог содержащий конфигурационный файл PHP, добавив ниже следующую строку:
    PHPIniDir "C:/php"
  4. Найдите и раскомментируйте строку:
    ServerName localhost:80
  5. Найдите строку:
    DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/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:/Program Files/Apache Software Foundation/Apache2.2/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

Сохраните изменения и закройте файл "httpd.conf"

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

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

Пример создания виртуального хоста

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

Откройте файл "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 ярлыком "Restart", находящимся в меню "Start", откройте браузер, введите в адресной строке test.ru или www.test.ru и вы окажетесь в своем виртуальном хосте. Только будьте внимательны, теперь вы сможете попасть на оригинальный сайт с именем виртуального хоста (www.test.ru если таковой существует), только закомментировав либо удалив строку: 127.0.0.1 www.test.ru, в вышеупомянутом файле "hosts".

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

Установка и настройка веб-сервера Apache – завершена.

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

Согласитесь, что вручную редактировать файл "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:\Program Files\Apache Software Foundation\Apache2.2\bin\ApacheMonitor.exe"

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

Установка phpMyAdmin 3.5.0
Установка phpMyAdmin 3.5.0
Установка MySQL в картинках
Установка БД MySQL и сервера в картинках
Установка PHP
Установка PHP в картинках. Подробное руководство.
Конфигурация Apache с помощью .htaccess
Конфигурация Apache с помощью .htaccess. Который является подобием и дополнением httpd.conf. Позволяет задавать большое количество дополнительных параметров и разрешений для работы веб-сервера, таких как управляемый доступ к каталогам, переназначение типов файлов и т.д., без изменения главного конфигурационного файла.
Страница сгенерирована за 0,0379 s
Наверх