Установка апач 2.4. Установка и настройка сервера Apache. Apache в действие

Веб- сервер устанавливается на 64-битную платформу Windows. Сервер 1с предприятия также 64-битный, версия платформы 8.3.10.2561

  • Самая первая попытка установить Apache была с использованием XAMPP. Не "взлетело" из -за отсутствия мастерства.
  • Продолжение было с IIS. Здесь возникли сложности с запуском информационных баз 1с, которые решились установкой 32-битного веб-расширения сервера 1с предприятия, однако, хотелось обойтись установкой только 64- битной платформы. Обсуждение ошибки с IIS
  • По описанию из статьи установил Apache 2.2 , но веб- сервер не запустился по ошибке

С Apache 2.4 ,наконец, все получилось.

Описание установки по шагам.

Шаг 1. Скачивание дистрибутива

Шаг 4. Изменить переменную среды path Windows .

В переменную среды path надо добавить путь к исполняемым файлам Apache C:\Apache24\bin

На Windows Server 2008 R2 и на Windows 7, на которых я выполнял эти действия, через иконку на рабочем столе Компьютер- Свойства системы- Дополнительные параметры системы-Переменные среды

Шаг 5. Установить компоненту С++

Для этого запустить ранее скачанный файл VC_redist.x64.

Я устанавливал на Windows 7 Professional и на Windows Server 2008 R2 .

Заметил, что библиотеки vc на 7- ке установились в папку C:\Windows\SysWOW64, а на Server 2008 в папку C:\Windows\System32, хотя обе системы 64- битные.

На работу веб- сервера, как оказалось,не влияет.

На Windows 7 операционную систему пришлось перезагрузить, на Windows Server 2008 - нет.

Шаг 6. Установка Apache как службы

Запустить командную панель с правами администратора Пуск-Выполнить-cmd, сменить папку на C:\Apache24\bin , запустить

httpd.exe -k install

В списке служб -Пуск - Администрирование-Службы - находим службу Apache 2.4 - Запускаем, ставим тип запуска.

Установка веб сервера на этом завершена .

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

  • Проверка запуска веб-сервера - в браузере указать http://localhost и увидетьIt works!
  • Настроить брандмауэр для доступа с других компьютеров
  • Публикация информационной базы. Здесь заметил, что после публикации, при ответе на вопрос о перезапуске веб- сервера автоматический перезапуск не происходит, надо веб-сервер перезапускать вручную.

При работе с использованием веб- клиента была обнаружена ошибка

проявляется при открытии объекта из списка по двойному клику на ссылке. Обходное решение - открыть объект из контекстного меню.

В данном разделе мы с вами будем разбираться с тем, как работает HTTP сервер Apache . Начнем мы, конечно, с установки Apache на Windows. Нужно отметить, что большинство хостингов в качестве веб-сервера используют Apache, поэтому любому веб-мастеру необходимо знать основы работы с этим сервером.

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

Что такое веб-сервер Apache и для чего он нужен?

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

Мы это сделали следующим образом: в корне диска С создали папку Server, внутри которой создали еще четыре папки: apache, tmp, www, log, php. Не все папки мы будем использовать в данной инструкции. Всё это отображено на рисунке ниже.

В папке www мы создали простой , который назвали Index.html со следующим содержимым:

Проверочная страница

Apache в действие

< ! DOCTYPE html >

< html lang = "ru-RU" >

< head >

< meta charset = "UTF-8" >

< title > Проверочнаястраница< / title >

< link rel = "stylesheet" type = "text/css" href = "style.css" / >

< / head >

< body >

< h1 > Apache вдействие< / h1 >

< / body >

< / html >

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

Подготовка папок

Я очень не люблю, чтобы у меня все валялось, где попало, так что для начала создадим папки, где у нас будут располагаться программы и сайты.
Создадим на диске «C:\» (или где вам удобней) папку «Server»:
C:\Server\
В ней создадим 2 папки:
C:\Server\web – это папка в которой у нас будут лежать программы
C:\Server\domains – а в этой папке будут лежать наши сайты
Итак, в папке \web\ мы создадим 3 папки для apache, php, mysql:
C:\Server\web\apache\
C:\Server\web\php\
C:\Server\web\mysql\
Далее перейдем в папку domains и создадим папку \localhost\
C:\Server\domains\localhost\
Внутри папки у нас будет 2 подпапки: public_html – для файлов сайта; logs – для текстовых файлов, в которых записывается «кто» получал доступ к сайту и какие ошибки в работе сайта появлялись.
C:\Server\domains\localhost\public_html\
C:\Server\domains\localhost\logs\
На этом структура папок заканчивается, переходим к настройке Apache.

Настройка Apache

Для установки Apache нам понадобиться сам Apache (Кэп). Так как у нас Windows 8.1 x64, то устанавливать будем Apache x64.
Для скачивания перейдем по ссылке:
www.apachelounge.com/download/win64
и скачиваем «httpd-2.4.6-win64.zip». Так же нам понадобиться для нормальной работы «Распространяемый пакет Microsoft Visual C++ 2010 (x64)». Для этого скачаем его по этой ссылке:
www.microsoft.com/ru-ru/download/details.aspx?id=14632
и устанавливаем.
После того как скачался наш архив с Apache, откроем его. Открыв архив, мы увидим папку «Apache24», зайдем в нее. Появиться множество папок и файлов программы, все распаковываем в заготовленную ранее папку:
C:\Server\web\apache\
Должно получиться так:
C:\Server\web\apache\bin\
C:\Server\web\apache\cgi-bin\
C:\Server\web\apache\conf\
C:\Server\web\apache\error\
C:\Server\web\apache\htdocs\
C:\Server\web\apache\icons\
C:\Server\web\apache\include\
C:\Server\web\apache\lib\
C:\Server\web\apache\logs\
C:\Server\web\apache\manual\
C:\Server\web\apache\modules\
Папки, такие как \cgi-bin\, \htdocs\, \icons\ и \manual\ нам не нужны – можете их удалить.
Перейдем в папку:
C:\Server\web\apache\conf\
И откроем файл конфигурации Apache – «httpd.conf» любым текстовым редактором. В этом файле каждая строка содержит директивы для настройки Apache, а строки, начинающиеся со знака # (решетка) – комментарий и пояснение. Приступим к настройке:

Файл конфигурации Apache

# директива Apache
ServerRoot “C:/Server/web/apache”
# Слушаем на локальном IP порт (80 по стандарту)
Listen 127.0.0.1:80
# далее подключим библиотеки расширений для Apache
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule php5_module "C:/Server/web/php/php5apache2_4.dll"
# указываем Apache, что файлы с расширением php, нужно воспринимать как php-скрипты
AddHandler application/x-httpd-php .php
# укажем расположение файла настроек php
PHPIniDir “C:/Server/web/php”
# изменим имя сервера
ServerName 127.0.0.1:80
# изменим доступ к директории

Options Includes Indexes FollowSymLinks
AllowOverride All
Allow from all


# директория с нашими сайтами
DocumentRoot “C:/Server/domains”
# индексные файлы, по приоритету.

DirectoryIndex index.php index.html index.htm index.shtml

# папка для log-файлов
ErrorLog “C:/Server/domains/logs/error.log”
CustomLog “C:/Server/domains/logs/access.log”
# добавим alias для phpMyAdmin, и поправим alias для cgi

Alias /pma “C:/Server/domains/phpMyAdmin”
ScriptAlias /cgi-bin/ “C:/Server/web/apache/cgi-bin/”

# правим путь для cgi

AllowOverride None
Options None
Require all granted

# типы файлов


AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

# Другие конфиги:



BrowserMatch "MSIE 10.0;" bad_DNT


RequestHeader unset DNT env=bad_DNT

На этом заканчивается настройка httpd.conf.
В конфигурационном файле Apache httpd.conf были подключены дополнительные конфиги:
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
Откроем файл «C:\Server\web\apache\conf\extra\httpd-mpm.conf» и быстро пробежимся по нему.
# указываем, где у нас будет храниться pid-файл:

PidFile “C:/Server/web/apache/logs/httpd.pid”

Остальные параметры оставляем без изменений. Откроем файл «httpd-autoindex.conf», изменим там только строки с путем:
Alias /icons/ "c:/Server/web/apache/icons/"

Options Indexes MultiViews
AllowOverride None
Require all granted

Файл хостов Apache

# на примере доменная localhost

DocumentRoot "C:/Server/domains/localhost/public_html"
ServerName localhost
ErrorLog "C:/Server/domains/localhost/logs/error.log"
CustomLog "C:/Server/domains/localhost/logs/access.log" common


# добавим для будущего phpMyAdmin (не забываем создать папку)

DocumentRoot "C:/Server/domains/phpmyadmin/public_html"
ServerName localhost
ErrorLog "C:/Server/domains/phpmyadmin/logs/error.log"
CustomLog "C:/Server/domains/phpmyadmin/logs/access.log" common

На этом редактирование файла заканчивается. Далее в оставшихся файлах правим только пути:
Файл «httpd-manual.conf»:
AliasMatch ^/manual(?:/(?:da|de|en|es|fr|ja|ko|pt-br|ru|tr|zh-cn))?(/.*)?$ "C:/Server/web/apache/manual$1"

В файле «httpd-default.conf» никаких изменений не производиться. На этом настройка конфигурации Apache завершается.

Настройка PHP

Раз у нас Windows 8.1 x64 и Apache x64 установлен и настроен, то и php должно быть x64.
Идем на сайт:

и скачиваем архив php последней версии. Нам нужен php как модуль, т.е. для этого скачиваем Thread Safe. После того как архив скачался, открываем его и переносим содержимое в папку «C:\Server\web\php\». Создадим две пустые папки «tmp» и «upload». Далее в этой папке ищем файл «php.ini-development» и переименовываем его в «php.ini». Открываем файл в текстовом редакторе и изменяем директивы (комментирования строк в файле начинается с точки с запятой).

Настройка php.ini

short_open_tag = On
zlib.output_compression = On
post_max_size = 64M
include_path = ".;С:\Server\web\php\includes"
extension_dir = "C:/Server/web/php/ext"
upload_tmp_dir = "C:/Server/web/php/upload"
upload_max_filesize = 64M
extension=php_bz2.dll
extension=php_curl.dll
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_pdo_mysql.dll
extension=php_sockets.dll
extension=php_sqlite3.dll
; в секции указываем временную зону нашего сервера (http://php.net/date.timezone)
date.timezone = "Asia/Yekaterinburg"
session.save_path = "С:/Server/web/php/tmp/"


На этом настройка php заканчивается.

Настройка MySQL

Ставим MySQL x64 как сокет под windows. Скачиваем архив с последней версией MySQL x64:
dev.mysql.com/downloads/mysql
В низу страницы находим Windows (x86, 64-bit), ZIP Archive и жмем на кнопку «Download». Вам перекинет на страницу регистрации на сайте. Нажимаем внизу страницы «No thanks, just start my download», запуститься скачивание архива MySQL. После того как скачался архив откроем его и перенесем все содержимое папки в «C:\Server\web\mysql\»
Теперь открываем файл настроек MySQL – «C:\Server\web\mysql\my-default.ini». Удаляем все его содержимое и вносим туда свои данные.
port=3306
host=127.0.0.1
port=3306
bind-address=127.0.0.1
enable-named-pipe
basedir="C:/Server/web/mysql/"
datadir="C:/Server/web/mysql/data/"
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
Вот и всё. В конфигурационном файле мы указали, что скрипты могут обращаться к серверу и по локальному IP, и по сокет-соединению.
Осталось дело за малым. Добавим в системную переменную «PATH» пути к Apache и MySQL, для этого:
  1. Перетащите курсор мыши в правый нижний угол экрана
  2. Щелкните на значке «Поиск» и введите: панель управления
  3. Выберите System (Система)-> Advanced (Дополнительные параметры системы)
  4. Выберите Environment Variables (Переменные среды), в меню System Variables (Системные переменные), найдите переменную PATH и щелкните на ней.
  5. Пропишите пути к Apache и MySQL:
;C:\Server\web\apache\bin;C:\Server\web\mysql\bin
Далее установим службы Apache и MySQL. Для этого воспользуемся сочетанием клавиш «Win+X», появиться выпадающее меню в левом нижнем углу. Выберем «Командная строка (администратор)».
В командной строке вводим, для установки Apache:
httpd –k install
для установки MySQL:
mysqld.exe --install MySQL --defaults-file=”C:\Server\web\mysql\my-default.ini”
Установим пароль для MySQL-пользователя. Для этого запустим службу MySQL командой:
NET start MySQL
После того как служба запустилась, установим пароль:
mysqladmin –u root password ВашПароль
В файл «httpd-vhosts.conf» мы прописали два сайта, для того чтобы браузер мог их увидеть, названия сайтов нужно добавить в файла «hosts». Перейдем в папку:
C:\Windows\System32\Drivers\etc\
откроем файл «hosts» любым текстовым редактором (запустить от имени администратора) и в конец файла добавим:
127.0.0.1 localhost
127.0.0.1 phpmyadmin
Сохраняем файл.
Для удобства запуска и остановки служб Apache и MySQL создадим файлы start-server.bat и stop-server.bat.
Для этого перейдем в папку «C:\Server\» и создадим два этих файла.
Содержание «start-server.bat»:
@echo off
NET start Apache2.4
NET start MySQL
Содержание «stop-server.bat»:
@echo off
NET stop Apache2.4
NET stop MySQL
Настройка Apache, PHP и MySQL на этом закончена. Для того чтобы протестировать сервер, давайте в папке «C:\Server\domains\localhost\public_html» создадим файл «index.php» с содержимым:

Далее запустим наш сервер, для этого запустите «start-server.bat» от имени администратора. После того как сервер запустился, откройте браузер и введите в адресной строке «localhost».
Должна отобразиться страница с информацией о PHP.

В те далекие времена, когда повсюду использовалась операционная система Windows XP , а установщики серверного программного обеспечения на данную операционную систему бинарными, были написаны темы "Установка Web-сервера Apache в среде Windows ", "Установка интерпретатора PHP в среде Windows ". Процесс установки происходил визуально, пользователям необходимо было запустить файл установки и следовать инструкциям. Но со временем разработки инсталлированных пакетов программного обеспечения прекратились, и сейчас необходимо самостоятельно их компилировать. Разработчики со временем убрали файлы установок и оставили только исходный код, который нужно отредактировать и установить. Именно этот процесс и будет описанный в данной статье.

Инструкция, приведенная в данной публикации, будет полезна начинающим WEB-разработчикам, которые работают в среде Windows и хотят установить Web-сервер Apache 2.4 VC15 с интерпретатором PHP 7 последних версий.

Сразу нужно заметить, что Apache 2.4 VC15 не будет на Windows XP и 2003 . Подходящие операционные системы: 7 SP1 , Vista SP2 , 8/8.1 , 10, Server 2008 SP2/R2 SP1 , Server 2012/R2 , Server 2016 .

Символы VC означают версию компилятора Visual Studio , в которой производилась компиляция и сборка. VC11 - VisualStudio 2012 , VC14 - VisualStudio 2015 , VC15 - VisualStudio 2017 .

На момент написания статьи последней актуальной версией Apache является httpd-2.4.27-Win64-VC15.zip . Скачать ее можно на сайте Apache Lounge .

VC15 значительно усовершенствована, исправлена и оптимизирована по сравнению с VC14 в таких областях, как Performance , MemoryManagement , имеет новые стандартные функции соответствия и генерация кода.

Перед установкой необходимо загрузить и установить обновления Visual Studio 2017 с сайта Microsoft .

Установку Visual Studio можно пропустить на данный момент, возможно, она уже установлена. Если в процессе установки будут ошибки, связаны с данным программным обеспечением, тогда можно перейти к установке.


Аналогично статьям, написанных ранее, мы будем также придерживаться структуре директорий, а именно в корне диска "C:/ " содержится папка "web_server ", внутри которой находятся подпапки: Apache , PHP и MySQL .

После скачивания архива необходимо разархивировать содержимое папки Apache24 в директорию "C:\web_server\apache ". Инсталлировать ничего не требуется.

Далее необходимо в файле "C:\web_server\apache\conf\httpd.conf " изменить следующее значения:
ServerRoot "C:/web_server/apache"
DocumentRoot "C:/web_server/apache/htdocs"
ServerName localhost:80 Параметр "ServerName " следует раскомментировать, а именно убрать символ решетки "# " перед параметром.

Далее найдите секцию, которая начинается " " и заканчивается " ". (Эти блоки содержат настройки для данного каталога и всех подкаталогов). По умолчанию он выглядит так:

AllowOverride none
Require all denied
Его нужно заменить на секцию следующего вида:

Options Indexes Includes
AllowOverride All
Allow from all
Этим вы обеспечите, что в данном блоке будут храниться настройки для всех каталогов по умолчанию (так как с:/ - корневой каталог). А именно, для всех каталогов по умолчанию является возможность автоматически генерировать индекс-список содержимого каталогов при просмотре его в браузере, а также поддержка SSI и разрешение на выполнение файлов ".htaccess " для индивидуальных настроек каталогов.

Найдите аналогичный блок, который начинается " " и заканчивается " ". Там будет много комментариев, не обращайте внимания. Эту секцию следует удалить, то есть все настройки для каталога со страницами должны зависеть от настроек по умолчанию, которые мы только настроили.

Инициализируем настройки "DirectoryIndex " так:
DirectoryIndex index.htm index.html Это файлы индекса, которые автоматически возвращаются сервером при запросе к любому каталогу, если не указано имя "html " документа. Можно добавить дополнительно параметр "index.php ", но лучше дополнительные настройки делать в файлах ".htaccess " для каждого сайта отдельно.

Далее включаем модуль "Rewrite ". Для этого достаточно убрать решетку перед следующей строкой:
LoadModule rewrite_module modules/mod_rewrite.so Последнее, что нужно сделать - установить сервис "Apache ". В командной строке от имени Администратора набираем строку:
C:\web_server\apache\bin\httpd.exe -k install
Если вы увидили ошибку The program can"t start because VCRUNTIME140.DLL is missing from your computer :


Необходимо установить Visual C++ для Visual Studio 2015 .

Также можно использовать альтернативу командной строке PowerShell , запустив ее от имени администратора системы:


Более подробно можно почитать в статье: Запуск командной строки (Cmd, PowerShell) от имени администратора в Windows 10 .

Для того чтобы перейти из текущего каталога в другой каталог используется команда cd . Команда имеет следующий синтаксис: CD [диск:][путь][..]. Команда для перехода в корневой каталог текущего диска выглядит так: cd\


На экране может появится окно оповещения системы безопасности Windows , где мы должны подтвердить разрешения нажатием на "Разрешить доступ ":


Для более удобного управления Web-сервером можно создать на рабочем столе ярлык для:
C:\web_server\apache\bin\ApacheMonitor.exe и/или добавить его в автозагрузку.

Следующим действием мы запускаем ApacheMonitor и нажимаем Start .


Поздравляем ! Вы успешно установили веб-сервер Apache на Ваш компьютер. В панели появится значок веб-сервера.

Если при работе в командной строке отобразилась ошибка:

The code execution cannot procced because VCRUNTIME140.dll was not found. Reinstalling the program may fix this problem.


Необходимо скачать и установить Visual C++ для Visual Studio 2015.

Для того, чтобы протестировать работу веб-сервера, запустите браузер и наберите в адресной строке "http://localhost/ " . Если Вы видите страницу с сообщением "It works! " - значит Вам действительно успешно удалось установить веб-сервер.

Установка PHP 7

Последнее что нужно сделать, это проверить подключение необходимых библиотек. Например, библиотека "php_mbstring.dll " содержит функции для работы с много-байтными кодировками, к которым относятся кодирования восточных языков (японский, китайский, корейский), Юникод (UTF-8) и другие. Библиотека "php_mbstring.dll " должна присутствовать в директории "C:\web_server\php\ext\ ".

Директива "extension_dir " указывает директорию, в которой располагаются библиотеки расширений PHP.

В конфигурационном файле "php.ini " необходимо настроить следующие значения:
upload_tmp_dir = "C:/Windows/Temp"
session.save_path = "C:/Windows/Temp"
error_log = "C:/Windows/temp/php-errors.log"
extension_dir = "C:/web_server/php/ext"
memory_limit = 512M
post_max_size = 50M
upload_max_filesize = 50M
sys_temp_dir = "C:/Windows/Temp" Далее необходимо раскоментировать (убрать крапку с комой впереди) расширения, которые должны быть подключены:
extension=php_bz2.dll
extension=php_curl.dll
extension=php_gd2.dll
extension=php_gettext.dll
extension=php_gmp.dll
extension=php_imap.dll
extension=php_mbstring.dll
extension=php_exif.dll
extension=php_mysqli.dll
extension=php_openssl.dll
extension=php_pdo_mysql.dll
extension=php_pdo_odbc.dll
extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
extension=php_soap.dll
extension=php_sqlite3.dll
extension=php_tidy.dll
extension=php_xmlrpc.dll Перезапускаем Apache используя ApacheMonitor .

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


Для того, чтобы протестировать, как работает Web-сервер в связке с интерпретатором, переименуйте файл "index.html " на "index.php " в папке "C:\web_server\apache\htdocs " и заполните его таким содержанием:
phpinfo();
?> Запустите браузер. Наберите в адресной строке "http://localhost/ ". Если вы увидели несколько файлов в окне браузера, то нажмите на "index.php ". В результате должны увидеть страницу со служебной информацией о веб сервере и интерпретаторе PHP.


Если вы параллельно работаете с несколькими проектами, то, скорее всего, понадобиться использовать виртуальные хосты (сайты). Их настройка описана в публикации: Создание виртуальных хостов Apache .

Вот и все, на этом установка завершена.

Apache - это популярнейший свободный веб-сервер. Состоянием на 2016 год он используется на 33% всех сайтов интернета, а это приблизительно 304 миллиарда сайтов. Этот веб-сервер был разработан в далеком 1995, как замена для популярного того сервера NCSA и исправил множество его проблем. Ходят слухи что его имя походит от a patchy, заплатка, так как он исправлял ошибки NCSA. Сейчас же, это кроссплатформенная программа, поддерживающая Windows, Linux и MacOS и обеспечивающая достаточную гибкость, настраиваемость и функциональность. Программа имеет модульную структуру, что позволяет расширять ее функциональность почти до бесконечности с помощью модулей.

Установить Apache в Linux можно с помощью нескольких команд, но программа предоставляет очень большое количество настроек, которые можно изменить, а также модулей, после включения которых она будет работать лучше. В этой статье будет рассмотрена установка и настройка Apache, в качестве основной системы мы будем использовать Ubuntu, но вы можете повторить эти действия в любом другом дистрибутиве. Будет рассмотрена не только установка самой программы, но и способы ее настройки, настройка виртуальных хостов apache, а также самые полезные модули.

На данный момент, самая новая версия программы 2.4 поэтому и будет рассмотрена настройка apache 2.4. Как я уже говорил, в Linux программа устанавливается буквально в пару команд. Для установки в Ubuntu сначала обновим систему до самой новой версии:

sudo apt update
$ sudo apt upgrade

Затем установка apache2:

sudo apt install apache2

В других дистрибутивах пакет программы называется либо так, либо httpd и его установка у вас не вызовет трудностей.

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

sudo systemctl enable apache2

Настройка Apache

Уже прошло то время, когда конфигурация Apache хранилась в одном файле. Но оно и правильно, когда все распределено по своим директориям, в конфигурационных файлах легче ориентироваться.

Все настройки содержатся в папке /etc/apache/:

  • Файл /etc/apache2/apache2.conf отвечает за основные настройки
  • /etc/apache2/conf-available/* - дополнительные настройки веб-сервера
  • /etc/apache2/mods-available/* - настройки модулей
  • /etc/apache2/sites-available/* - настойки виртуальных хостов
  • /etc/apache2/ports.conf - порты, на которых работает apache
  • /etc/apache2/envvars

Как вы заметили есть две папки для conf, mods и site. Это available и enabled. При включении модуля или хоста создается символическая ссылка из папки available (доступно) в папку enable (включено). Поэтому настройки лучше выполнять именно в папках available. Вообще говоря, можно было бы обойтись без этих папок, взять все и по старинке свалить в один файл, и все бы работало, но сейчас так никто не делает.

Сначала давайте рассмотрим главный файл конфигурации:

vi /eta/apache2/apache2.conf

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

KeepAlive On - очень полезный параметр, позволяет передавать несколько файлов, за одно соединение, например, не только саму html страницу, но и картинки и css файлы.

MaxKeepAliveRequests 100 - максимальное количество запросов за одно соединение, чем больше, тем лучше.

KeepAliveTimeout 5 - таймаут соединения, обычно для загрузки страницы достаточно 5-10 секунд, так что больше ставить не нужно, но и рвать соединение раньше чем загрузились все данные тоже не нужно.

User, Group - пользователь и группа, от имени которых будет работать программа.

HostnameLookups - записывать в логи вместо ip адресов доменные имена, лучше отключить, чтобы ускорить работу.

LogLevel - уровень логирования ошибок. По умолчанию используется warn, но чтобы логи заполнялись медленнее достаточно включить error

Include - все директивы include отвечают за подключение рассмотренных выше конфигурационных файлов.

Директивы Directory отвечают за настройку прав доступа к той или иной директории в файловой системе. Синтаксис здесь такой:


Параметр значение

Здесь доступны такие основные опции:

AllowOverride - указывает нужно ли читать.htaccess файлы из этой директории, это такие же файлы настроек и таким же синтаксисом. All - разрешать все, None - не читать эти файлы.

DocumentRoot - устанавливает из какой папки нужно брать документы для отображенияа пользователю

Options - указывает какие особенности веб-сервера нужно разрешить в этой папке. Например, All - разрешить все, FollowSymLinks - переходить по символическим ссылкам, Indexes - отображать содержимое каталога если нет файла индекса.

Require - устанавливает, какие пользователи имеют доступ к этому каталогу. Require all denied - всем запретить, Require all granted - всем разрешить. можно использовать вместо all директиву user или group чтобы явно указать пользователя.

Order - позволяет управлять доступом к директории. Принимает два значения Allow,Deny - разрешить для всех, кроме указанных или Deny,Allow - запретить для всех, кроме указанных..ru.

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

У нас остался файл /etc/apache2/ports.conf:

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

Последний файл /etc/apache2/envvars, его вы вряд ли будете использовать, в нем указанны переменные, которые можно использовать в других конфигурационных файлах.

Настройка сервера Apache через htaccess

Файлы.htaccess позволяют настраивать веб-сервер на Ubuntu для поведения в определенной директории. Все инструкции, указанные в этом файле выполняются как бы они были обвернуты в тег если бы находились в основном файле.

Важно заметить, что для того, чтобы сервер читал инструкции из.htaccess настройки для этой папки в основном файле или файле виртуального хоста не должны содержать AllowOverride None , чтобы могли работать все настройки нужно AllowOverride All .

А в остальном, здесь может выполняться любая настройка сервера apache, от включения модулей, до обычного изменения доступа к папке. Поскольку все параметры мы уже рассмотрели просто приведем пару примеров:

Order Deny,Allow
Deny from all

Запрещает всем доступ к этой папке, важно применить, для папок с конфигурацией. Чаще всего.htaccess используется для работы с модулем mod_rewrite, который позволяет изменять запросы на лету:

RewriteEngine on
RewriteRule ^product/([^/\.]+)/?$ product.php?id=$1 [L]

Но это очень обширная тема и выходит за рамки этой статьи.

Настройка модулей Apache

Как я уже говорил, Apache - модульная программа, ее функциональность можно расширять с помощью модулей. Все доступные модули загрузчики и конфигурационные файлы модулей находятся в папке /etc/apache/mods-available. А активированные в /etc/apache/mods-enable.

Но вам необязательно анализировать содержимое этих папок. Настройка Apache 2.4 с помощью добавления модулей выполняется с помощью специальных команд. Посмотреть все запущенные модули можно командой:

Включить модуль можно командой:

sudo a2enmod имя_модуля

А отключить:

sudo a2dismod имя_модуля

После включения или отключения модулей нужно перезагрузить apache:

sudo systemctl restart apache2

Во время выполнения одной из этих команд создается или удаляется символическая ссылка на файл модуля с расширением load в директории mods-available. Можете посмотреть содержимое этого файла, там только одна строка. Например:

vi /etc/apache2/mods-available/deflate.load

Это к тому, что активировать модуль можно было просто добавив эту строчку в файл apache2.conf. Но принято делать именно так, чтобы избежать путаницы.

Настройки модулей находятся в той же папке, только в файле с расширением.conf вместо load. Например, посмотрим настройки того же модуля для сжатия deflate:

vi /etc/apache2/mods-available/deflate.conf

Файлы в папке conf-available, это такие же модули, только они установлены отдельно от apache, это может быть конфигурационные файлы для включения модуля php или любого другого языка программирования. Здесь работает все точно так же, только команды для включения и отключения этих модулей немного другие:

a2enconf имя_модуля

a2disconf имя модуля

Как вы убедились, включать модули очень просто. Давайте включим несколько необходимых, но не включенных по умолчанию модулей:

sudo a2enmod expires
$ sudo a2enmod headers
$ sudo a2enmod rewrite
$ sudo a2enmod ssl

Модули expires и headers уменьшают нагрузку на сервер. Они возвращают заголовок Not Modified, если документ не изменился с последнего запроса. Модуль expiries позволяет устанавливать время, на которое браузер должен кэшировать полученный документ. Rewrite позволяет изменять запрашиваемые адреса на лету, очень полезно при создании ЧПУ ссылок и т д. А последний для включения поддержки шифрования по SSL. Не забудьте перезагрузить apache2 после завершения настроек.

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

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

Настройки хостов Apache расположены в папке /etc/apache2/hosts-available/. Для создания нового хоста достаточно создать файл с любым именем (лучше кончено с именем хоста) и заполнить его нужными данными. Обернуть все эти параметры нужно в директиву VirtualHost. Кроме рассмотренных параметров здесь будут использоваться такие:

  • ServerName - основное имя домена
  • ServerAlias - дополнительное имя, по которому будет доступен сайт
  • ServerAdmin - электронная почта администратора
  • DocumentRoot - папка с документами для этого домена

Например:

vi /etc/apache2/sites-available/test.site.conf



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: