Профессиональная разработка всегда ориентируется на собственные инструменты - это гарантия надежного и эффективного исполнения обязательств. Собственный хостинг и сервера различного назначения в спектре востребованных конфигураций расширяют сферы решаемых задач, повышают безопасность и конфиденциальность разработок.
Веб-сервер Apache уверенно лидирует с прошлого века, поскольку обеспечивает быструю, надежную и безопасную работу. Физическая машина и сервер под управлением Linux или Windows - это фундамент, HTTP - это надстройка, хотя по сути это протокол передачи данных. В качестве сервера может быть использована Windows-машина, но предпочтение отдается семейству линуксоидов.
Apache в среде Windows - это локальный вариант, используемый на одном компьютере для дублирования разработки ресурсов, размещенных на внешних серверах. Установка на допустима, но не слишком популярна. Настройка Apache на CentOs дает больше возможностей и используется для организации серверов в локальной и глобальной сетях.
Считается, что сервера Apache обслуживают более 50 % всех активных веб-ресурсов, остальная доля приходится на подобные изделия от Microsoft, Sun и др. Собственно, физический сервер и его операционная система могут быть любыми. HTTP-сервер ставится на готовую платформу и работает параллельно с другими приложениями на ней. Apache считается родным для всего семейства линуксоидов, но в каждом конкретном случае у него есть особенности.
Бесплатность, простота, надежность отличают линукс-системы и их приложения. Не важно, что использовать: установка и настройка Apache на Ubuntu не намного отличается от CentOs, Debian или FreeBSD. Часто играет роль насыщенность той или иной операционной системы дополнительным программным обеспечением.
Семейство линуксов невелико по количеству «родственников» на линии того или иного ядра системы. Отличия носят больше социальный характер - в смысле привязанности разработчиков к формулировке и воплощению возможностей операционной системы.
В реальности для решения конкретной задачи поднять хостинг необходимо определиться с нужным функционалом, требуемой производительностью, концептуальными приоритетами и конкретным выбором представителя Linux, либо же остановиться на Windows Server.
Трудно оценить роль глобальной сети в развитии программирования, но легко заметить реальное смещение центра тяжести: локальные приложения стало принято исполнять как веб-ресурс. Просто написать программу для локального компьютера - это драйвера, антивирусы, небольшие проекты с простым функционалом. Язык программирования... VBA, хотя можно применить C/C++ или C#.
Любой информационный проект - это веб-ресурс в локальной сети компании, который частично может быть доступен из глобальной сети, например для координирования действий сотрудников за пределами офиса, находящихся в дороге или командировке.
MySQL, PHP, Apache: настройка на локальный вариант применения - совсем иная динамика приложения, необходимого функционала. Современные компании, вне зависимости от размера, количества сотрудников и сферы деятельности, всерьез рассматривают интернет-программирование, как локальное, так и глобальное.
При этом локальное может быть распределенным: офисы компании могут находиться где угодно, но это не Интернет, а распределенная локальная сеть компании.
MySQL, PHP, Apache настройка в локальной форме:
Если учесть, что MySQL и Apache в среде Windows - это службы, а PHP-код - это обычный текст, обрабатываемый инструментом (интерпретатор PHP), вызываемым в нужный момент времени HTTP-сервером, то уровень изменяемости, мобильности и переносимости кода будет значительно выше, чем у локальных инструментов разработки.
Еще в эпоху «начала начал» операционная система Unix определила негласные принципы лояльности. С тех пор все, что делалось под юниксоподобные системы, автоматически транслировалось на другие платформы. Настройка Apache на Windows выполняется крайне просто, но для решения серьезных задач потребуется хорошая квалификация и детальное представление о конфигурации HTTP-сервера.
Прежде всего нужно скачать последнюю версию сервера (сегодня это версия 2.4.33 от 17.03.2018) с официального сайта в формате zip-архива. Следует иметь в виду изначально, что версии серверов многочисленны и предлагаются на множестве сторонних ресурсов, поэтому важно выбрать официальную реализацию, размещенную на веб-ресурсе, вызывающем доверие.
Ранее популярной была установка сервера посредством специального инсталлятора. Теперь повсеместно практикуется простое развертывание zip-архива. Это проще и дает возможность понять суть процесса конфигурирования, что очень важно и впоследствии позволяет оптимизировать сервер под нужную нагрузку и функциональность.
Конфигурация сервера определяется набором конфигурационных файлов, расположенных в папке conf. Основной файл конфигурации Apache - httpd.conf.
В подавляющем большинстве случаев необходимо внести правки в основной файл, уточнить содержимое файлов, отвечающих за ssl и виртуальные хосты. Остальные настройки обычно делаются в процессе по мере возникновения проблем или решения задач. В основном дальнейшие настройки связаны с оптимизацией работы Apache или расширением его возможностей.
Для успешного запуска сервера достаточно внести правку только в одну строку (по порядку - 38-ю) - и настройка Apache завершена.
В предыдущих вариантах конфигурации сервера требовалось вносить многочисленные правки под реальную ситуацию, но теперь есть «универсальная» переменная SRVROOT. Стоит указать ее правильное значение (путь к месту расположения сервера), и все сразу заработает.
К расположению сервера нужно отнестись внимательно. Сам по себе Apache интересен, но когда он оснащен PHP и MySQL, он интересен вдвойне. Лучше, когда все, что связано с веб-разработкой, находится в одном месте. Можно согласиться на дефолтные пути, но современное программирование не столь идеально в своей реализации, так что держать руку на пульсе придется однозначно и часто. Кроме того, при выборе удобного места будут доступны все файлы инициализации и конфигурирования, а также логи по работе установленных продуктов.
Скачанный официальный zip-архив Apache нужно развернуть в выбранном месте, разместив раздельно инструмент и работу. В данном примере папка C:\SCiA - это инструмент (Apache24, PHP, MySQL, ...), а папка SCiB - это работа, собственно, сайтов, которые создаются, сопровождаются или модернизируются.
В результате первого этапа работы в папку C:\SCiA\Apache24 попадают только подпапки bin, cgi-bin, conf, error, ... со всем их содержимым.
Второй этап состоит в том, чтобы правильно настроить файл hosts - указание на то, какие IP-адреса на данном компьютере сопоставлены с какими именами. Если на компьютере будет вестись разработка или сопровождение только одного сайта, то можно ничего не менять.
Базовый IP - 127.0.0.1 обычно всегда указывает на localhost. Рабочий файл hosts находится по адресу c:\Windows\System32\drivers\etc и выглядит так, как показано ниже.
Чтобы поместить файл hosts в нужное место, нужно воспользоваться командной строкой в режиме администратора. Подготовить правильное содержание файла можно в любом месте файловой системы компьютера, но записать его по адресу c:\Windows\System32\drivers\etc можно только тем инструментом, который обладает правами администратора. Через командную строку это сделать проще всего.
Нет ничего проще. Достаточно запустить командную строку от имени администратора и перейти в папку C:\SCiA\Apache24. Поскольку это путь в системе Windows, то используются прямые слэши. В конкретном случае путь может быть иным. Но если с именем папки для размещения святой троицы - Apache, PHP и MySQL - еще можно как-то экспериментировать, то менять имена папок для каждого из них нецелесообразно.
В данном случае архив сервера развернут в папке С:/SCiA/Apache24, следовательно, нужно в папке bin написать команду:
Сервер протестирует файл конфигурации и установится сам. Скорее всего, будут незначительные ошибки, но если правильно править конфигурационный файл, то все ошибки будут несущественными, и их можно быстро исправить.
Окно (1) командной строки - установка сервиса, окно (2) - список служб, в которых объявился сервер, окно (3) - исходный файл index.html, расположенный по адресу С:/SCiB/localhost/www, окно (4) - результат работы сервера.
В этом примере умышленно была допущена ошибка: вместо установки значения переменной SRVROOT были внесены многочисленные правки «по старинке»: вручную все было изменено. Это не самое лучшее решение. Прежде чем применять знания, следует ознакомиться с текущей версией продукта. Как правило, все быстро меняется, и знания следует применять «со знанием дела и пониманием текущей ситуации».
Современные сайты далеко не всегда пишутся на системах управления сайтами. Есть много ручного труда. Проблема переноса сайта на другой хостинг обусловила хорошее решение - zip-архив. Свернули контент в одном месте, развернули - в другом.
Наличие инсталлятора - хорошая практика, но динамика современных информационных технологий не дает времени на написание красивых инсталляций. Использовать установку через развертывание zip-архива - современно, практично и удобно. В таком варианте настройка Apache ограничивается изменением файлов конфигурации.
При установке сервера важно указать:
Последняя позиция актуальна, когда на сервере предполагается вести разработку или сопровождение сразу нескольких ресурсов. Для реального разработчика это обязательное решение: даже если он обеспечивает работу одного сайта, не будет лишним иметь запасной вариант.
Простота развертывания zip-архива очевидна, Apache (установка и настройка) - всего два-три клика. Однако результат, когда были популярны инсталляторы, был эквивалентным. Разработчик просто тратил больше времени на разработку очередной версии своего продукта. Установка сервера, серверного языка и базы данных - это, по сути, просто наборы файлов, запуск сервисов, файл hosts и пути по умолчанию в переменной операционной системы path.
Появление "денвера" и ему подобных джентльменских наборов разработчика стало революционным шагом по линии простоты и удобства, но заблуждаться не стоит. Революция и программирование - вещи абсолютно не совместимые. Первое - это дитя конфликта и его бурного решения, второе - это серьезное дело, требующее абсолютного спокойствия, пунктуальности, точности, системности, внимательности, безопасности, надежности.
Настройка сервера Apache - это серьезная процедура, к которой нужно отнестись крайне внимательно и сделать все так, чтобы уже завтра можно было что-то менять и уточнять.
В большинстве случаев разработка веб-ресурсов - это достаточно длительные процессы, в которых требования к сервисам (Apache, PHP, MySQL, ...) меняются быстро, но всегда есть время на понимание очередной задачи и ее оптимальное решение. Но это не повод идти на поводу джентльменских наборов. Время течет, а джентльмен - не меняется, это гораздо более веский аргумент, чем декларация «денвер» - это просто, быстро и доступно.
Настройка Apache 2.4 ради одного хоста - неоправданная роскошь. Несмотря на компактное исполнение, на плечах данного сервера висит огромный вес ответственности за большую половину активных веб-ресурсов Интернета. К тому же далеко не все ресурсы имеют представительскую часть и видны в сети.
Сервер может быть использован как база данных, как пункт передачи информации, как фильтр, как парсер, как рабочий механизм в более глобальном информационном процессе. Вследствие сказанного настройка виртуальных хостов Apache - практически всегда обязательная процедура.
Один сервер может поддерживать сколько угодно веб-ресурсов, для этого нужно в файле httpd.conf снять комментарий со строки 501:
и описать все необходимые хосты в файле
Может потребоваться уточнить, какие порты и IP слушает сервер, но это отдельная тема, на первое время можно ограничиться тем, что есть.
Следует отметить, что в примере для удобства описания реальных виртуальных веб-ресурсов (а их много) введена переменная (DOCROOT) с путем к общей папке всех веб-ресурсов, доступных через установленный сервер.
Настройка Apache SSL доступна аналогичным образом. В файле httpd.conf нужно просто оставить «как есть» строки с 524 по 531, которые отвечают за работу SSL.
Времена, когда настройка сервера действительно представляла собой сложную задачу, давно прошли. Сегодня настройка Apache - очень простая процедура, которая не требует от разработчика особой квалификации.
Три простых действия:
В результате Apache функционирует в полном объеме. Если не брать в расчет тонкости процесса работы сервера на максимальной нагрузке или выполнять локальную разработку на Windows-компьютере, дополнительных знаний не потребуется.
Сложности могут возникнуть на Linux-системах. Существенно различное представление о файловой системе, правах пользователей и групп, а также организация процесса взаимодействия с другими приложениями требуют от разработчика большей компетенции и представления о том, как работают Linux-компьютеры.
Настройка Apache на любой линуксовой системе открывает перед разработчиком гораздо больше возможностей и дает выход в локальную сеть и Интернет. По сложившейся традиции Windows-компьютер - это локальная рабочая станция, и сервер там внутренний. Linux-компьютер - и узел локальной сети или точка в интернет-пространстве.
Apache - это фундаментальный кирпичик интернет-пространства, который может быть легко и просто настроен, использован и станет опорой компании.
Эта логика предполагает наличие хотя бы одного сервера в сети на платформе CentOS, Ubuntu, FreeBSD, рабочих станций на Windows. Оптимально иметь два Linux-сервера (основной и вспомогательный), настройку Apache для локального компьютера в среде Windows. В случае вирусной атаки или непредвиденной ситуации вспомогательный сервер станет на замену основному, а основной - на ремонт и восстановление. Заменить локальную установку Apache на рабочей станции (под Windows) можно из архива.
Это тривиальное решение можно уточнить и дополнить в реальной практике. Размер информационных потоков компании может определить желаемую конфигурацию и нужное количество серверов. Собственно, Apache спроектирован для работы под нагрузкой, но ничто не мешает распределить обязанности одного сервера по нескольким. Решение, которое учитывает особенности конкретной компании, всегда перспективнее адаптации стороннего варианта.
Раньше в нашей серии по основам Linux мы рассматривали основы работы с веб-сервером Apache. Он является самым широко используемым в мире веб-сервером в Интернете (по состоянию на июль 2015 года, доля Apache составляла 38%, IIS - занимал 26%, а Nginx - 15%). Поэтому чем больше вы о нем знаете и понимаете как он работает, тем больших успехов вы достигнете при его взломе.
Сегодня мы рассмотрим основы настройки сервера Apache. Как мы писали раньше, конфигурирование и настройка почти всех приложений в Linux или Unix осуществляется через конфигурационные файлы, которые представляют собой обычный текст. Apache здесь не является исключением. Поэтому в этой статье мы сосредоточимся на конфигурационном файле apache2.conf, который находится в директории /etc/apache2.
Давайте начнем с того, что запустим Apache2. Сделаем это через графическую оболочку окружения Kali, перейдя в Applications -> Kali Linux -> System Services -> HTTP -> apache2 start, как показано на скриншоте ниже.
Или запустите его через командную строку, набрав в терминале следующую команду
Kali >service apache2 start
Это запускает демон Apache2, и с этого момента веб-сервер должен обрабатывать наш контент в Интернете.
Чтобы проверить, работает ли наш сервер Apache, давайте просто перейдем в браузере по localhost или 127.0.0.1. Если вы видите страницу как на скриншоте ниже, то это означает, что сервер работает нормально!
Чтобы настроить Apache, нам нужно перейти в директорию /etc/apache2.
Kali > cd /etc/apache2
Выведем на экран список всех файлов в этой директории:
Kali > ls -l
Как видите, в этой директории есть несколько файлов и поддиректорий. Сейчас нас интересует только файл apache2.conf, но обратите внимание, что у нас есть файл ports.conf и папка sites_available, которые нам понадобятся чуть позже, также здесь есть несколько других файлов конфигурации и папок.
Мы можем открыть apache2.conf в любом текстовом редакторе, но здесь мы будем использовать Leafpad. Файл можно открыть, просто набрав в консоли:
Kali > leafpad /etc/apache2/apache2.conf
Как видите, эта команда открывает текстовый файл со всей информацией о конфигурации нашего веб-сервера Apache. Чтобы настроить сервер, мы сейчас попытаемся ознакомить вас со всеми ключевыми моментами этого файла.
Давайте прокрутимся вниз, пропустив все комментарии, и найдем строку #70, где начинается раздел глобальных настроек. Здесь мы видим настройки ServerRoot. Это вершина дерева директорий, в которой сервер Apache хранит все связанные с работой сервера файлы. Строка #84 определяет ServerRoot. Мы можем просто раскомментировать эту строку, если хотим установить /etc/apache2 в качестве ServerRoot. Мы рекомендуем вам это сделать.
В следующем разделе у нас располагаются переменные, которые определяют значения параметров: Timeout, KeepAlive, MaxKeepAliveRequests и KeepAliveTimeout.
Мы предлагаем вам оставить все значения по умолчанию, кроме параметра «Timeout». Каждая ситуация отличается, и вам может потребоваться изменить эти значения по умолчанию для того, чтобы адаптировать производительность сервера к конкретной среде.
Давайте опять прокрутим вниз несколько строк в файле apache2.conf, пока не дойдем до строки #177. Здесь мы можем установить пользователя и группы Apache2. Обратите внимание на комментарий к строке #177. Там указано, что мы можем установить эти переменные в файле envvars (переменные окружения). Оставим этот вопрос для будущих статей, но пока просто имейте в виду, что и User (пользователь) и Group (группа) являются переменными, значения которых берутся из файла /etc/apache2/envvars.
И, наконец, последний раздел, имеющий огромное значение для безопасности Apache, начинается со строки #193. Этот раздел дает гарантии, что веб-клиенты не смогут получить доступ к файлам.htaccess и.htpasswd.
В следующем разделе описано, как Apache управляет логами (журналами).
В первом подразделе мы обращаемся к параметру HostNameLookups. Эта директива сообщает Apache2, должен ли он выполнять поиск DNS, когда он записывает в лог установленное соединение. Со значением по умолчанию «Off» (выключено) Apache2 работает намного лучше.
Теперь посмотрим на директорию site_available (доступные сайты) и, самое главное, на тот файл, который находится в ней по умолчанию. Его часто называют файлом виртуальных хостов (Virtual Hosts) по умолчанию. Откройте этот файл, набрав в консоли:
Kali > leafpad /etc/apache2/site_available/default
Как видите, в этом файле есть три критических области. Первая строка определяет, какой порт слушает веб-сервер. Здесь определено, что он слушает любой интерфейс на 80-м порту (*: 80). Вторая строка определяет адрес электронной почты, на который нужно слать уведомления в случае возникновения проблем с сервером. По умолчанию там стоит адрес Если вы являетесь системным администратором, то здесь вы можете указать ваш адрес электронной почты. Третий элемент может быть самым важным - DocumentRoot. Он определяет, где будет размещаться контент для этого виртуального хоста, значением по умолчанию является директория /var/www. Мы предлагаем вам оставить все в том виде, в котором это было определено разработчиками.
Наконец, мы можем перейти в файле apache2.conf еще ниже до строки #248 — «include port.conf». Эта директива просто сообщает Apache о необходимости перейти в файл port.conf, чтобы найти те порты, которые он должен прослушивать.
andew
2016-07-23T17:54:43+00:00
2017-08-25T04:44:37+00:00
7613
В статье представлен обзор конфигурации web сервера Apache в Ubuntu server при стандартном варианте инсталляции LAMP в Ubuntu. Приведена логика и структура организации конфигурационных файлов веб сервера. Описаны назначения основных конфигов сервера. Даны базовые Linux Ubuntu команды для манипуляции конфигурацией, настройки и управления веб сервером Apache. Рассмотрен сайт по умолчанию, который создается в процессе установки Apache. Статья вам будет полезна при настройке и администрировании своего LAMP сервера.
Как добавить поддержку PHP как обработчика сценариев в Apache на Ubuntu или Windows детально описано в статье Установка PHP7 на Windows в разделе Настройка .
В процессе выполнения стандартной инсталляции web сервера Apache в Ubuntu server создается тестовый сайт, который служит для проверки работоспособности веб сервера после его установки. Этот сайт, по умолчанию, сконфигурирован так, что разрешает обращения из браузера только к файлам и каталогам внутри /var/www директории Ubuntu server. Если, по завершению инсталляции Apache , вы откроете в браузере веб страницу по адресу IP вашего web сервера, то увидите стартовую страницу сервера - Apache2 Ubuntu Default Page . Это будет, в первую очередь, говорить о том, что Apache удачно установился и работает. Эта страница физически располагается на сервере в файле /var/www/html/index.html и за ее настройку и вывод в браузере отвечает конфиг виртуального хоста по умолчанию (/etc/apache2/sites-available/000-default.conf ), который определяет виртуальный хост(сайт) для каталога /var/www/html и создается в ходе инсталляции сервера Apache . Соответственно, если вы разместите ваши файлы в этой папке, то они будут обрабатываться web сервером. Также на этой Default Page в секции Configuration Overview вы увидите схематическое представление структуры конфигурационных файлов сервера. Здесь нужно понимать, что структура, названия и расположения конфигов Apache в Ubuntu отличаются от общепринятой схемы, что сделано для удобства управления сервером. Но тут есть один нюанс, который заключается в том, что если вы ранее не были знакомы с организацией каталогов в домашней директории Apache на Ubuntu , то эта схема может вас только запутать, т.к. в ней представлены не все папки, а только каталоги, в которых располагаются символьные ссылки на активированные файлы конфигурации. Поэтому, для более правильного понимания, смотрите полную схему каталогов и фалов домашней директории web сервера Apache расположенную ниже в этой статье. Из ценного в секции веб страницы Apache - это ссылки на man "ы Debian для команд a2enmod , a2dismod , a2ensite , a2dissite , a2enconf , a2disconf , которые используется для активации и деактивации тех или иных видов файлов конфигурации и будут детально описаны . Так же здесь сказано, что для передачи команд web серверу ( started/stopped etc. ) нужно обращаться к /etc/init.d/apache2 или к apache2ctl , что так же является особенностью сервера в Ubuntu. На сервере Ubuntu в файле /usr/share/doc/apache2/README.Debian.gz вы сможете найти полную документацию по Apache .
По умолчанию, домашний каталог web сервера Apache в Ubuntu находиться по /etc/apache2/ пути в файловой системе. В этом каталоге и его подкаталогах располагаются все конфигурационные файлы Apache . Изменить значение пути домашней директории web сервера можно директивой ServerRoot "/etc/apache2" в главном конфиге apache2.conf . Там, по умолчанию, директива ServerRoot закомментирована, что равносильно ее значению как "/etc/apache2" (завершающего слеша не должно быть в этой директиве! ). Значение пути домашней директории Apache (ServerRoot ) необходимо серверу, что бы он знал, в каком месте файловой системы ему следует искать свои конфигурационный файлы. Так же значение ServerRoot может подставляться сервером в некоторых директивах, ожидающих в качестве аргумента путь в файловой системе Ubuntu . Поэтому, в таких случаях, если путь указать без начального слеша, то Apache воспримет это как относительный путь по отношению к своей домашней директории. Так, например, если указать директиву AuthUserFile .htpasswd , то в таком варианте Apache будет интерпретировать указанный путь как относительный и превратит его в /etc/apache2/.htpasswd , подставив спереди значение пути своей домашней директории.
В процессе стандартной установки WEB сервера Apache в Ubuntu создается следующая структура файлов и каталогов домашней директории веб сервера:
/etc/apache2/ ...............................Домашняя директория Apache в Ubuntu - ServerRoot |-- conf-available ......................директория, содержит разные конфиги | `-- charset.conf ...................файл для указания кодировок | `-- localized-error-pages.conf .....файл для задания страниц ошибок | `-- other-vhosts-access-log.conf ...файл для задания логов виртуальных хостов | `-- security.conf ..................файл для директив безопасности | `-- serve-cgi-bin.conf .............файл для директив конфигурации CGI |-- conf-enabled активированные конфиги из conf-available | `-- @ ..............................ССЫЛКИ на активированные конфиги из conf-available |-- mods-available ......................директория, содержит конфиги установленных модулей Apache | `-- ... ........................доступные конфиги модулей Apache |-- mods-enabled ........................директория, содержит ССЫЛКИ на активированные конфиги модулей из mods-available | `-- @ ..............................ССЫЛКИ на активированные конфиги модулей Apache |-- sites-available .....................директория содержит доступные конфиги виртуальных хостов | `-- 000-default.conf ...............файл виртуального хоста по умолчанию для 80 порта, создан при инсталляции Apache | `-- default-ssl.conf ...............файл виртуального хоста по умолчанию для порта 443, создан при инсталляции Apache |-- sites-enabled .......................директория, содержит ССЫЛКИ на активированные конфиги виртуальных хостов из sites-enabled | `-- @000-default.conf ..............ссылка на активированный конфиг виртуального хоста |-- apache2.conf ........................ГЛАВНЫЙ конфиг web сервера Apache в Ubuntu |-- envvars .............................файл с настройками путей для окружения Apache |-- magic ...............................Файл скриптов для модуля mime_magic (этот модуль не активен по умолчанию) |-- ports.conf ..........................файл для задания портов на которых будет принимать подключения ApacheПриведенные примеры представлены из OS Ubuntu server 16.04 LTS, однако тоже самое будет и в других версиях и дистрибутивах Ubuntu как в сервером варианте, так и в desktop варианте.
Как уже было сказано выше, в Ubuntu используется отличная от оригинальной организационная структура конфигурационных файлов и директорий для веб сервера Apache .
Во-первых , в Ubuntu , конфигурация Apache разбита на множество разных конфигов по их функциональному назначению. Например, директивы, задающие порт для сервера, вынесены в отдельный файл ports.conf . Директивы, ответственные за те или иные параметры безопасности сервера, вынесены в файл security.conf . Тем самым, директивы как бы сгруппированы по своему смыслу в отдельные конфигурационные файлы. Это достаточно логично и удобно при чтении, правке, активации и деактивации конфигов. При таком подходе каждый, отдельно взятый файл, становиться меньше и является узкоспециализированной частью конфигурации. Однако, нужно понимать, что такое дробление сделано исключительно для удобства и автоматизации настройки и технически, если вы захотите, вы можете записать все директивы и настройки в один файл, просто работать с таким файлом будет не так удобно.
Во-вторых : центром всей конфигурации выступает главный конфиг Apache веб сервера - apache2.conf файл. Именно этот файл в первую очередь ищет и читает web сервер Apache при старте или перезагрузке. А уже в этом файле при помощи директив Include , в месте их указания, выполняется подключение и загрузка всех остальных заданных конфигов. Таким образом, все конфигурационные файлы объединяются в единую конфигурацию web сервера и происходит это, когда Apache читает файлы по порядку их подключения, начиная с главного конфига. Из этого следует важное замечание - порядок следования директив в конфигурации Apache и, соответственно, порядок подключения файлов конфигов имеет значение, так как директивы, прочитанные сервером позднее могут переопределять директивы прочитанные им ранее. Об этом нужно помнить при настройке сервера.
В-третьих : если вы посмотрите на структуру каталогов домашней директории Apache , то увидите три пары директорий с названиями вида: префикс_каталога -available/enabled . Такая логическая структура призвана для распределения ваших конфигов на три группы , исходя из префикса названия каталога, где conf-* это каталоги для ваши прочих конфигов, mods-* это каталоги для конфигов модулей Apache и sites-* это каталоги для конфигов ваших виртуальных хостов. Вторая часть имени этих каталогов -available/-enabled логически указывает на доступные вообще и только активные в настоящий момент момент конфиги. Так в директориях *-available хранятся все доступные для использования файлы конфигурации, а уже в директориях вида *-enabled расположены символьные ссылки (ярлыки ) только на те конфиги из *-available директории, которые должны быть прочитаны web сервером при загрузке конфигурации. Apache читает только каталоги вида *-enabled , поэтому применяться только те конфиги, на которые в этих каталогах есть ссылки . Такой подход дает еще дополнительный уровень удобства тем, что позволяет вам хранить все ваши конфиги в каталогах домашней директории сервера, а задействовать только необходимые в текущий монет.
В-четвертых : директивы конфигурации web сервера Apache имеют контекст (), в котором они действуют. Понятие контекст директивы указывает на то, где, на каком уровне и в каком конфиге данная директива может использоваться. Одна и та же директива может быть разрешена к использованию как только в одном виде контекста, так и в нескольких видах контекста. Если директива будет использована/записана в недопустимом для нее виде контекста, то будет ошибка web сервера Apache при загрузке конфигурации, которая приведет к его остановке. Поэтому, при написании ваших директив, всегда обращайте внимание на контекст их применения, который всегда указывается в документации к директиве на сайте Apache.
В-пятых : нужно понимать, что Apache выполняет чтение и применение всех активных конфигов только при старте или перезагрузке. После старта Apache уже более не перечитывает конфигурацию. Исключением служит файл .htaccess , который является локальным файлом уровня каталога сайта и перечитывается при каждом обращении к данному каталогу сайта. Соответственно, если вы сделали изменения параметров конфигурации вне .htaccess файла, то для вступления их в силу необходимо перезагрузить web сервер Apache .
Виды контекста директив:
Для удобства и автоматизации управления конфигурацией Apache в Ubuntu имеются специальные команды, воспользовавшись которыми вы можете включить или исключить из конфигурации сервера те или иные конфигурационные файлы, запустить и перезагрузить сервер, просмотреть и изменить параметры переменных окружения Apache и многое другое.
Для активации и деактивации тех или иных конфигов в Ubuntu предоставляются команды помощники созвучные с available /enabled и префиксом каталога. Например, команда a2enconf , которую можно расшифровать как apache2-enable-conf , выполняет активацию указанного в ее аргументе конфигурационного файла из conf-available каталога путем создания на него символьной ссылки в каталоге conf-enabled . Команда a2disconf выполняет обратное действие, т.е. удаляет эту ссылку. Подобная логика применима и к остальным командам: a2enconf /a2disconf , a2enmod /a2dismod , a2ensite /a2dissite . Но вы так же можете и вручную создать/удалить символьные ссылки на нужные вам конфиги в директориях вида *-enabled .
Внимание : для вступления измений конфигов в силу нужно выполнить перезагрузку конфигурации WEB сервера Apache .
Для включения или выключения нужного конфига из каталога conf-available в конфигурацию сервера используйте команды:
Включить конфиг :
sudo a2enconfВыключить конфиг :
sudo a2disconfДля активации установленного модуля Apache из каталога mods-available
Включить модуль Apache
sudo a2enmodВыключить модуль Apache
sudo a2dismodДля активации конфигурации виртуального хоста из каталога sites-available и деактивации его используйте команды:
Включить виртуальный хост в Apache
sudo a2ensiteВыключить виртуальный хост в Apache
sudo a2dissiteВ Ubuntu , благодаря использованию переменных среды, для обращения к демону httpd web сервера можно применять вызовы вида: /etc/init.d/apache2 или apache2ctl или apache2 :
sudo /etc/init.d/apache2 sudo apache2ctl sudo apache2Linux-сервер своими руками Колисниченко Денис Николаевич
12.2.2. Конфигурирование Apache с помощью netconf
Практически все параметры Web-сервера Apache можно установить, используя конфигуратор netconf (или linuxconf). Для этого запустите netconf и перейдите на вкладку Server Tasks, а затем нажмите на кнопку «Apache Webserver» (см. рис. 12.2).
Рис. 12.2. Конфигурирование Apache с помощью netconf
С помощью netconf вы легко можете установить основные параметры Apache (см. рис. 12.3), определить виртуальные хосты, установить параметры подкаталогов, определить спецификацию каталогов и модулей, а также установить параметры модуля mod_ssl (см. рис. 12.4), конфигурирование которого рассмотрено ниже в этой главе.
Рис. 12.3. Основные параметры Apache
Рис. 12.4. Конфигурирование модуля mod_ssl
Из книги Разгони свой сайт автора Мациевский Николай Из книги Linux для пользователя автора Костромин Виктор АлексеевичКонфигурируем Apache 2 Для Apache 2 описанные действия выглядят гораздо проще.# добавляем Content-Type для всех файлов с расширением.gzAddEncoding gzip .gz# включаем сжатие для HTML- и XML-файловAddOutputFilterByType DEFLATE text/htmlAddOutputFilterByType DEFLATE text/xml# и для иконок (об этом чуть ниже)AddOutputFilterByType DEFLATE image/x-icon#
Из книги Linux-сервер своими руками автораКонфигурируем Apache Тесты под Konqueror показали, что этот браузер не понимает архивированных файлов (CSS и JavaScript), поэтому чтобы уберечь десятую долю процента посетителей от сердечного приступа (когда они увидят сайт без соответствующих стилей), стоит добавить его в этот набор
Из книги Linux: Полное руководство автора Колисниченко Денис Николаевич Из книги Ubuntu 10. Краткое руководство пользователя автора Колисниченко Д. Н.Конфигурация Apache 2 # выставляем заголовок Content-Encoding: gzipAddEncoding gzip .gz# с самого начала включаем gzip для текстовых файловAddOutputFilterByType DEFLATE text/htmlAddOutputFilterByType DEFLATE text/xml# и для favicon.icoAddOutputFilterByType DEFLATE image/x-icon# также для CSS- и JavaScript-файловAddOutputFilterByType DEFLATE text/cssAddOutputFilterByType DEFLATE
Из книги Linux глазами хакера автора Флёнов Михаил Евгеньевич13.2.6. Утилита netconf В предыдущих разделах я попытался подробно и последовательно изложить, каким образом можно настроить выход в сеть путем прямого редактирования конфигурационных файлов. Впрочем, настройки локальной сети можно производить и с помощью специальных утилит
Из книги автора12 Сервер Apache Эта глава посвящена популярному WWW-серверу Apache. Сервер Apache разработан и поддерживается организацией Apache Project. Первоначально, сервер Apache был разновидностью сервера Web-сервера NCSA, разработанного в Национальном центре разработок суперкомпьютеров Иллинойского
Из книги автора12.1. Установка Apache Для установки сервера Apache необходимо установить пакеты apache и apache-docs. В первом из них находится сам сервер, а во втором - документация. Желательно устанавливать самую новую версию. В последних версиях вам нужно установить еще и пакет apache-common, содержащий
Из книги автора12.5. SSL и Apache 12.5.1. Установка SSL SSL (Secure Sockets Layer) является методом шифрования, разработанным компанией Netscape для обеспечения безопасности в Интернет. Этот метод поддерживает несколько способов шифрования и обеспечивает аутентификацию как на уровне клиента, так и на уровне
Из книги автора12.5.2. Подключение SSL к Apache Теперь осталось подключить mod_ssl к Apache. При этом следует учитывать, что вам нужна версия mod_ssl, которая совместима с вашей версией Apache. Иначе модуль mod_ssl будет некорректно работать или вообще откажется что-либо делать. Последние цифры в названии
Из книги автора16.1. Установка Apache В зависимости от дистрибутива, пакет, из которого устанавливается веб-сервер Apache, может называться apache или httpd, а пакет с документацией - apache-docs или httpd-manual соответственно. В первом случае вам понадобится установить еще пакет apache-common, содержащий
Из книги автора16.10. SSL и Apache 16.10.1. Установка SSL SSL (Secure Sockets Layer) является методом шифрования, разработанным компанией Netscape для обеспечения безопасности передачи данных. Этот метод поддерживает несколько методов шифрования и обеспечивает аутентификацию как на уровне клиента, так и на
Из книги автора16.10.2. Подключение SSL к Apache Версия mod_ssl, которую вам нужно установить, должна быть совместима с вашей версией Apache, иначе модуль mod_ssl будет некорректно работать или вообще откажется что-либо делать. Последние цифры в названии модуля указывают на совместимость с определенной
Из книги автора16.13. Защита сервера Apache По окончании настройки сервера запретим изменение и удаление файла конфигурации:# chattr +i /etc/httpd/conf/httpd.confПосле этого вы (и никто другой) не сможете изменить этот файл даже с помощью конфигуратора.Желательно также установить права 511 для
Из книги автора26.2.1. Установка Apache и PHP Запустите менеджер Synaptic. В поле Быстрый поиск введите apache. Щелкните правой кнопкой мыши на пакете apache2 и выберите команду Отметить для установки. Менеджер пакетов сообщит вам, что нужно установить дополнительные пакеты (рис. 26.1). Нажмите кнопку
Из книги автора5.1.1. netconf Эта команда запускает конфигуратор сети (рис. 5.1). Программа netconf имеет удобный графический интерфейс и позволяет настраивать сетевые параметры, не задумываясь о конфигурационных файлах. Рис. 5.1. Окно программы
Установим минимально необходимые для работы атрибуты, для этого откроем для редактирования файл /etc/httpd/conf/httpd.conf
Apache может работать с одним из трех доступных мультипроцессорных модулей (mpm):
Для просмотра информации о модулях выполните:
# httpd -V | grep "Server MPM"
ServerLimit 256
StartServers 20
MinSpareServers 20
MaxSpareServers 20
MaxRequestWorkers 256
MaxConnectionsPerChild 4000
MaxRequestWorkers установите значением, равным ServerLimit.
В секции
StartServers 5
MinSpareServers 10
MaxSpareServers 10
MaxClients 30
ServerLimit 30
StartServers — количество запускаемых процессов, рассчитываете как (Всего памяти - Память для сервера, MySQL, Memcache и т.д.) / размер процесса . Например, 64Gb - 32Gb / 0.256Gb = максимум 125 процессов.
MinSpareServers — минимальное количество простаивающих процессов.
MaxSpareServers — максимальное количество простаивающих процессов.
MaxClients — лимит процессов.
ServerLimit — устанавливается аналогичным значению MaxClients.
Обстоятельно необходимо подходить к расчету MaxClients, т.к. при установке малого значения может увеличиться количество отказов вэб-сервера в обслуживании на запрос клиента. Установка слишком большого значения может привести к свопингу и значительному увеличению времени ответа вэб-сервера.
При использовании одноуровневой и двухуровневой конфигурации вtб-сервера лимиты устанавливаются по-разному. Отдавая сформированные страницы более легкому вtб-серверу (например, nginx), лимиты можно понизить. Конкретные значения рассчитываются индивидуально для каждого вэб-сервера.
При запросе страницы с вэб-сервера, браузер отправляет множество запросов на загрузку CSS-стилей, изображений и т.п. Использование KeepAlive позволяет запросить страницу и сопутствующие ей файлы в течение одного соединения.