Налаштування Apache: покрокова інструкція. Структура домашньої директорії Apache в Ubuntu. Встановлення та налаштування локального web-сервера Apache, PHP, MySQL під операційну систему Windows

Конфігурація Apache

Є два способи налаштування Web-сервера: змінити змінні, які відповідають за функціонування основного сервера, або створити віртуальний сервер. У нашому випадку другий спосіб кращий. Але про це трохи пізніше, а поки що розберемося з базовими директивами, що керують поведінкою сервера. Основна конфігурація Apache міститься у файлі httpd.conf, розташованому в каталозі:

C:\usr\local\apache\conf\

Це звичайний текстовий файл, і його редагування підійде будь-який текстовий редактор - той самий «Блокнот», наприклад. Я не буду докладно розповідати про кожен рядок у цьому файлі, а лише про найнеобхідніші та потрібні нам директиви. Відзначте, що знак '#' є коментарем, і якщо ви добре читаєте англійською, то легко зможете їх розібрати, що, правда, не дуже допоможе, якщо у вас немає хоча б загального уявленняпро принципи функціонування Web-серверів та Інтернет в цілому. Тому дозвольте мені запропонувати вам свою допомогу в налаштуванні Apache. Разом у нас вийде швидше і, що найважливіше – правильно.

Файл конфігурації Apache складається з трьох великих секцій:

  • Global Environment – ​​директиви, що керують налаштуваннями Apache в цілому;
  • Main server configuration - директиви, що керують налаштуваннями головного сервера;
  • Virtual Hosts – директиви, що керують віртуальними серверами.

Секція загальних налаштувань нас не цікавить, тому що вам навряд чи колись доведеться змінювати вказані там значення, а ось два інші розділи ми розберемо докладніше. Точніше, один з них - я розповім про корисні директиви, які використовуються при налаштуваннях параметрів основного сервера, оскільки при конфігуруванні віртуальних хостів використовуються ті самі команди. З тією різницею, що певні параметри успадковуються з налаштувань головного сервера. Тож почнемо…

ServerName – ім'я запущеного Web-сервера. Воно повертається клієнту в заголовку HTTP і ідентифікує Web-сервер, що виконав запит. При реальній роботі сервера в Інтернеті ім'я вже має існувати і бути прописаним в DNS. При локальній установці Web-сервера для налагодження та тестування сайтів це не важливо – ім'я може бути будь-яким. До речі, саме це ім'я запитував інсталятор перед установкою, тож, якщо хочете, можете зараз його відредагувати. Значення параметра має бути визначене як мінімум для головного сервера. В іншому випадку Apache просто не запуститься.

ServerAdmin [email protected]- електронну адресу адміністратора, використовуваний у деяких автоматично генерованих повідомленнях про помилки Web-сервера, як-от відсутність сторінки, наприклад. Параметр повинен бути визначений як мінімум для головного сервера, інакше Apache також відмовиться запускатись.

ServerRoot "c:/usr/local/apache" - каталог, в якому був розміщений Apache при встановленні. Якщо ви захочете перемістити його в інше місце, то цей рядок потрібно буде скоригувати, як, втім, і всі інші рядки у файлі, що вказують на даний каталог. Якщо ви встановили Apache так, як я описував вище, то цей рядок вже буде налаштований правильно і буде вказувати на c:/usr/local/apache.

Port 80 - порт, за яким Apache відстежуватиме HTTP-запити. За умовчанням він дорівнює стандартному значенню для Web-серверів, і у вас навряд чи виникне потреба у його зміні.

DocumentRoot "з:/usr/local/apache/htdocs" - адреса каталогу, що використовується для зберігання HTML-сторінок. За замовчуванням цей параметр вказує на документацію Apache, що постачається в дистрибутиві та розташована у вищезгаданому каталозі.

UserDir “c:/usr/local/apache/users/” - каталог, який використовується для зберігання сторінок користувачів, доступ до яких буде можливий за адресою:

http://www.domain.com/~user/

Оскільки ми ставимо Web-сервер для локальної налагодження сайтів, а не для реальної роботи в Інтернеті, то цей рядок вам міняти не потрібно.

DirectoryIndex index.html index.htm - параметр, що визначає ім'я файлу, який шукатиме Apache, якщо вказано не повну URL-адресу. Тобто такий, що закінчується ім'ям каталогу, а не адресою конкретної сторінки. У тому числі це стосується і файлу, який відкривається за замовчуванням під час набору основної URL-адреси. Наприклад, якщо ви набрали в адресному рядку:

http://www.domain.com/links/,

то насправді Apache відкриє сторінку:

http://www.domain.com/links/index.htm

Повний перелік файлів, які можуть бути знайдені в директорії, якраз і визначається цим параметром. Імена файлів відокремлюються один від одного пропуском. При цьому має значення порядок, в якому перераховані альтернативні імена: якщо в каталозі є файли з ім'ям і index.htm, і index.html, то Apache відкриє саме другу сторінку, оскільки у списку index.html стоїть раніше, ніж index.htm.

Alias ​​/icons/ "c:/usr/local/apache/icons/" - команда створення аліасів, тобто посилань, для будь-яких каталогів. Наприклад, наведена вище команда робить доступним вміст каталогу “c:/usr/local/apache/icons/” за адресою:

http://www.domain.com/icons/

При цьому сам каталог може бути в будь-якому місці файлової структурита не обов'язково бути підкаталогом раніше визначеного каталогу для розміщення HTML-документів.

ScriptAlias ​​/cgi-bin/ "c:/usr/local/apache/cgi-bin/" - дана командааналогічна до попередньої з тією лише різницею, що визначає реальне місце розташуваннякаталогу із виконуваними CGI-скриптами.

AddType text/html .html .htm - команда, що визначає тип mimeдля файлу із заданим розширенням. У даному випадкуми присвоюємо розширенням.html і.htm тип звичайного гіпертексту, і Apache інтерпретуватиме його як html-код. Точніше, інтерпретувати доведеться браузеру - Web-сервер лише видасть йому вказівку про те, що це гіпертекст. А ось якщо цього рядка не буде, то Apache видасть сторінки з таким розширенням за звичайні текстові файли.

AddHandler server-parsed .shtml - команда, що визначає обробник (автоматично запускається програма) для файлу із зазначеним розширенням. У цьому випадку ми пов'язуємо розширення.shtml із вбудованим обробником SSI-директив. І отже, всі файли мають це розширення, Перед тим, як видати сторінку користувачеві, будуть проходити попередню обробку. Якщо говорити більш конкретно, то Apache замінить усі SSI-вставки на відповідні значення.

ErrorDocument 404 /error404.html - директива, що визначає сторінку, яка буде надіслана користувачеві при виникненні помилки. У цьому випадку було визначено сторінку для найпоширенішої 404 помилки. Ця директива не є обов'язковою, і в разі її відсутності Apache згенерує стандартну сторінку. Але погодьтеся, що визначити свою власну сторінку помилки і, крім того, зробити її в єдиному стилісайту набагато привабливіше. Шлях до сторінки помилки може бути вказаний або локально (тоді він повинен обов'язково починатися від кореня сайту), або з повним URL-сторінкою.

ErrorLog logs/error.log - команда, що визначає ім'я файлу, куди записуватимуться всі помилки, що виникають під час завантаження сторінок або виконання CGI-скриптів. При локальному налагодженні Web-сайтів - річ дуже корисна. Так що якщо щось не ладиться - Apache не запускається, Perl-скрипти не працюють, графіка на сторінках не вантажиться - цей файл може допомогти вам розібратися в проблемі.

CustomLog logs/access.log common - директива, аналогічна до попередньої, але з тією відмінністю, що використовується для протоколювання всіх запитів до Web-сервера. На основі його аналізу можна отримати повний звіт про відвідуваність сайту та популярність окремих розділів.

Тепер розберемося з налаштуваннями прав доступу до файлів та каталогів, що входять до структури Web-сайту. З міркувань безпеки нам необхідно для будь-якого файлу або каталогу, що використовується для зберігання сторінок або програм CGI, встановити певний набір прав. Але спочатку розглянемо, як нам задати папку чи файл(и), яким ми присвоюємо права. Робиться це за допомогою однієї з таких конструкцій:

Для каталогу:

Тут перераховуються всі директиви, що керують доступом та опціями каталогу

Для файлу(ів):

Тут перераховуються всі директиви, що керують доступом до файлу(ам)

Замість directory та filename підставляються потрібні значення. Можливе використання регулярних виразів, що дозволяє задавати права цілої групи файлів та/або каталогів.

Права, визначені для каталогу, поширюються і на всі підкаталоги, що входять до нього, якщо тільки для якогось підкаталогу права не були перевизначені. Зараз ми розглядаємо спосіб визначення прав в основному конфігураційний файл, але для тих же цілей можна використовувати і локальні файли.htaccess, які розміщуються в тій папці, для якої потрібно обмежити доступ. У ряді випадків це набагато зручніше. Синтаксис написання команд у файлі.htaccess повністю аналогічний синтаксису команд у файлі httpd.conf.

Важливо відзначити, що конфігурація поведінки Web-сервера за допомогою. Але про це я ще скажу, коли ми дійдемо відповідної команди. А поки що почнемо розбирати по порядку всі основні директиви, які використовуються для визначення прав:

  • Options option_list – директива, що визначає додаткові опції для конкретного каталогу. Опції відокремлюються один від одного пробілами. Основні їх такі:
  • None – додаткові опції для даного каталогу не визначені.
  • All - визначено всі можливі опції, крім MultiViews.
  • Indexes - опція, що дозволяє використовувати файли за промовчанням - при неповному наборі адреси. Список стандартних файлів задається директивою DirectoryIndex, яка була описана в цій статті дещо вище. За відсутності в даному каталозі файлу за промовчанням Apache видасть браузеру вміст каталогу.
  • Includes - опція, що стосується функціонування SSI і дозволяє використовувати директиву Include. Для повноцінного функціонування SSI опція має бути увімкнена.
  • IncludesNOEXEC - опція, подібна до попередньої, але забороняє використовувати у включеннях SSI-команди запуску CGI-скриптуі.
  • ExecCGI - опція, що дозволяє в даному каталозізапуск CGI-програм.
  • FollowSymLinks - опція, що дозволяє Apache переходити за символьними посиланнями у системах UNIX. Тобто сторінка може знаходитися поза основним деревом, визначеним для зберігання html-документів.
  • AllowOverride - директива, що дозволяє перевизначати параметри доступу для каталогів нижче. Те, про що я говорив раніше. Після цієї команди має бути вказано список директив, дозволених до перевизначення. Наприклад, AllowOverride All - дозволяє перевизначення будь-яких прав, AllowOverride Options - дозволяє перевизначення опцій для каталогу, AllowOverride None - забороняє перевизначення прав.
  • Order allow, deny - порядок накладання прав доступу до файлу чи каталогу з певних IP-адрес або доменних імен. Може використовуватися маска для відсіювання цілих сегментів мережі. У цьому випадку спочатку визначаються сайти, доступ до яких дозволено, а потім ті, до яких заборонено. У разі команди Order deny, allow – все навпаки.
  • Allow from - список IP-адрес або доменних імен, доступ з яких дозволено. Може бути використана маска для дозволу доступу до сайту цілій групі доменів. Наприклад, Allow from .com – дозволяє доступ з усіх доменів, що мають закінчення.com. Allow from all – дозволяє доступ до сайту з будь-якої точки Інтернету.
  • Deny from - список IP-адрес або доменних імен, доступ з яких заборонено. Так само, як і в попередньому випадку, може бути вказана група доменів або маска IP-адрес.

Ось, мабуть, і всі основні директиви, які використовуються для конфігурування Apache. Якщо ви хочете знати, що роблять інші, то все у вашій владі - конфігураційний файл чудово коментований і при невеликій старанності ви розберетеся з ним.

Тепер, коли Apache налаштований і запущений у базовій конфігурації, а ми озброєні знаннями про основні директиви, нам не заважає додати підтримку інших технологій – зокрема SSI. Якщо ви уважно читали опис команд з конфігурування Apache, то вже напевно здогадалися, що ця технологія SSI включається зазначенням наступних двох директив:

AddType text/html .shtml AddHandler server-parsed .shtml

Додати до секції Document typeфайлу конфігурації ці два рядки (або просто розкоментуйте їх) і скоригуйте список файлів за замовчуванням, додавши туди ім'я index.shtml:

DirectoryIndex index.htm index.html index.shtml

Додатково нам потрібно визначити для каталогу з документами права використання SSI-включень у сторінках. Для цього необхідно знайти та скоригувати секцію, яка визначає права для кореневого каталогу документів. Вона має виглядати так:

Options Indexes Includes AllowOverride All

Більше для підтримки технології SSI нічого не потрібно, тож перейдемо до конфігурування віртуального сервера.

Як я вже говорив раніше, віртуальні сервери зручніші для створення та налагодження сайтів на локальному Web-сервері, ніж використання для цієї мети налаштувань основного Web-сервера. По-перше, дуже легко додавати нові віртуальні сервери, по-друге, всі налаштування, що стосуються даному серверу, знаходяться в одному місці, а по-третє, дуже просто організувати одночасну підтримку кількох проектів.

Але перед тим як конфігурувати віртуальний сервер, створимо всі необхідні каталоги. Я рекомендую для Інтернет-проектів використовувати структуру каталогів, наведену нижче. Ви можете в якості основного вибрати будь-який інший диск, але я для пояснень як і раніше використовуватиму диск C.

  • c:\web\ - каталог, який використовується для Інтернет-проектів;
  • c:\web\project\ - каталог для нашого проекту, який ми так і назвемо - project;
  • c:\web\project\website\ - тут будуть розміщені сторінки сайту;
  • c:\web\projectcgi-bin - тут можуть розміщуватися CGI-скрипти на Perl;
  • c:\web\project\logs\ - цей каталог міститиме лог-файли Web-сервера.

Як було зазначено вище, директиви, визначені у секції віртуального хоста, перевизначають глобальні значення Але для початку потрібно розібратися, як визначити сам віртуальний хост. Це робиться за допомогою однойменної директиви VirtualHost. Нижче наведено фрагмент, який описує віртуальний сервер нашого проекту. Додайте його в кінець конфігураційного файлу - саме там знаходиться секція для визначення віртуальних хостів. А потім я дам докладні роз'ясненняпо кожному рядку:

ServerAdmin [email protected] ServerName project DocumentRoot “c:/web/project/website” ScriptAlias ​​/cgi-bin/ “c:/web/project/cgi-bin/” ErrorLog c:/web/project/logs/error.log CustomLog c:/web /project/logs/access.log common

Зробили? Прекрасно, переходимо до коментарів! Отже, в першому рядку я визначив IP-адресу, за якою здійснюватиметься доступ до віртуального хоста. Оскільки локальний Web-сервер прив'язаний до IP-адреси 127.0.0.1, то логічно для віртуальних хостів скористатися такими IP-адресами: 127.0.0.2, 127.0.0.3, 127.0.0.4 і т.д.

У другій та третій рядках перевизначено е-mail адміністратора та ім'я сервера. Ці директиви вказувати не обов'язково, але вони дозволяють нам зручніше організувати роботу з Web-сервером, зокрема зробити так, щоб звертатися до сервера можна було не за IP-адресою, а за певним у цій секції імені хоста, але про це я розповім трохи пізніше.

Далі слідує важливий рядок, що визначає розташування документів для нашого сайту. Формат запису повністю аналогічний базовому серверу. Так само перевизначені аліаси до CGI-скриптів і шляхи до лог-файлів. Зауважте, що як значення ми використовували каталоги, які створили кількома абзацами вище.

Після додавання віртуального хоста Apacheнеобхідно перезапустити - щоб зміни набули чинності. Наш віртуальний хост буде доступний за адресою 127.0.0.2. Якщо щось не виходить і сервер відмовляється запускатися, подивіться, що написано у файлі error.log. Швидше за все, там буде вказано помилку в синтаксисі конфігураційного файлу.

Пам'ятаєте, я обіцяв розповісти про те, як зробити так, щоб можна було звертатися до сервера ще й на ім'я? Ось і настав час. У конфігурації Web-сервера нам вже нічого міняти не потрібно, а доведеться підправити внутрішній файл Windows, що визначає відповідність локальних IP-адрес та доменних імен. Залежно від того, в якій системі ви працюєте, цей файл може знаходитись у різних місцяхабо не існувати зовсім (у цьому випадку його потрібно буде створити вручну). Файл називається hosts і розташований у каталозі:

C:\windows\ - для машин з системою Win9x/Mе

C:\windows\system32\driver\etc\ - для машин з системою WinNT/2000

У цьому каталозі також може бути файл hosts.sam (розширення від слова sample - «приклад»), який можна перейменувати в hosts, якщо останній відсутній. Файл hostsє звичайним текстовим файлом у форматі ASCII і має дуже простий формат: кожен рядок складається з локальної IP-адреси та відповідного доменного імені. Для нашого випадку цей файл має виглядати так:

127.0.0.1 localhost apache 127.0.0.2 project

Зауважте, що в першому рядку я визначив два імені для однієї IP-адреси. Звернення до такого сервера можливе за будь-яким із цих імен. Альтернативні імена повинні відокремлюватися один від одного пробілами.

Для тестування нашого віртуального сервера та конфігурованої технології SSI нам необхідно написати тестову сторінку. Для цього в будь-якому текстовому редакторі створіть файл такого змісту:

Тестування технології SSI

та збережіть його під ім'ям index.shtml. Також створіть файл test.inc з таким вмістом:

Вітаю, технологія SSI працює!

Перепишіть обидва файли до каталогу з:\web\project\website\, який налаштований як каталог для документів нашого проекту, і наберіть в адресному рядку браузера:

http://project/

Якщо ви побачили у браузері привітання, то все гаразд: SSI працює, а крім того, функціонує і нове розширення за замовчуванням – index.shtml. Якщо у вас щось працює некоректно, ще раз уважно перечитайте останні кілька абзаців та переконайтеся, що ви все зробили правильно.

Apache встановлений та налаштований - переходимо до інсталяції та конфігурування PHP.

Встановлення PHP4 під Windows

Встановлюватимемо останню доступну на момент написання цієї статті версію PHP, а саме PHP4.0.4pl1. Адреса, за якою її можна завантажити, вказана наприкінці цієї статті. Архів з цим дистрибутивом PHP також розташований на компакт-диску, що додається до журналу.

Дистрибутив є звичайним ZIP-архівом, і його достатньо розпакувати в потрібну папку. Керуючись тими ж міркуваннями, які я приводив при створенні каталогу для встановлення Apache, розпакуємо дистрибутив PHP в папку:

C:\usr\local\php4\

Перейдіть у вказаний каталог, знайдіть там файл php.ini-dist і, перейменувавши його в php.ini, скопіюйте в кореневий каталог Windows(зазвичай це c:\windows). Цей файл містить усі налаштування, що керують поведінкою PHP, і є звичайним текстовий файл. Оскільки конфігурація за умовчанням цілком нам підходить, то на Наразіу цьому файлі нічого не потрібно виправляти.

Тепер необхідно налаштувати Apache та PHP для спільної роботи. Існують два основних способи встановлення PHP - як звичайної CGI-програми і як модуля Apache. Ми розглянемо обидва та почнемо з конфігурування PHP як звичайної CGI-програми.

Встановлення PHP як CGI-програми

Основну роботу з налаштування доведеться провести над файлом конфігурації Apache. Якщо ви вже встигли закрити файл httpd.conf, відкрийте його знову і додайте туди кілька рядків, що відносяться до функціонування PHP. Спочатку нам необхідно визначити новий типфайлу та зіставити його з розширеннями, що використовуються PHP. Для цього додаємо в секцію «Document types» наступний рядок:

Тепер необхідно призначити обробник для цього типу файлів, тому додайте відразу після визначення типу наступний фрагмент:

Options ExecCGI

І, нарешті, ми додамо до списку індексних файлів значення index.php. Для цього знайдіть та підкоригуйте наступний рядок:

Усі потрібні налаштування PHPвиконано, і можна протестувати працездатність PHP. Для цього створимо тестовий файл такого змісту:

Тестування технології PHP

і збережемо його під ім'ям test.php у каталозі з: \web\project\website\, який ми раніше визначили для зберігання HTML-файлів нашого проекту. Тепер, набравши в браузері рядок:

http://project/test.php

http://127.0.0.2/test.php,

ми маємо побачити текст привітання. Якщо все гаразд, то конфігурування PHP можна закінчити. В іншому випадку, уважно перевірте описані вище директиви у файлі httpd.conf. І ще не забудьте перезапустити Apache перед перевіркою.

Установка PHP як звичайної CGI-програми досить проста, але не дозволяє нам використовувати частину функцій, пов'язаних з авторизацією користувачів, постійним підключенням до баз даних та рядом інших можливостей. Тому зараз ми розберемо кращий спосіб встановлення - як модуля Apache. Цей спосіб забезпечує помітно більшу швидкодію через відсутність накладних витрат на запуск зовнішньої CGI-програми. Втім, для нашого випадку використання локального Web-сервера для тестування сайтів швидкість виконання не критична.

Встановлення PHP як модуля Apache

Насамперед нам необхідно знайти скомпільований модуль PHP для підключення його до Apache. Якщо ви ставили PHP так, як я описував раніше, то потрібний файл розташований за адресою:

C:\usr\local\php4\sapi\php4apache.dll

Скопіюйте цей файл рівнем вище - в основний каталог PHP:

C:\usr\local\php4\

Тепер потрібно настроїти деякі змінні в конфігураційному файлі Apache. Як і при встановленні PHP у вигляді CGI-програми, необхідно додати до секції Document types визначення нового типу документа:

AddType application/x-httpd-php .phtml .php

А також підкоригувати рядок, що містить список індексних файлів:

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

Тепер найважливіше – конфігуруємо завантаження модуля. Знайдіть у конфігураційному файлі секцію “Dynamic Shared Object (DSO) Support” і додайте до неї наступний рядок:

LoadModule php4_module “з:/usr/local/php4/php4apache.dll”

Конфігурування вважатимуться закінченим. Залишилося лише протестувати працездатність PHP. Не забудьте спочатку зберегти файл і перезапустити Apache. Для тестування можна скористатися написаним раніше скриптом test.php. Наберіть у браузері рядок:

http://project/test.php

і переконайтеся, що PHP працює успішно. Якщо щось не в порядку, то уважно перевірте точність зазначених вами шляхів до модуля та дійсне знаходження його у вказаному каталозі.

І невелике зауваження для тих, хто вже конфігурував PHP як CGI-програму, а тепер намагається встановити його як модуль, не забудьте видалити з конфігураційного файлу Apache секцію, яка зв'язує обробник типу файлу з програмою CGI. Адже в даному випадку вся обробка php-файлів займається вже зовнішній модуль. Я маю на увазі ось цей фрагмент:

ScriptAlias ​​“/__php_dir__/” “c:/usr/local/php4/” Action application/x-httpd-php “/__php_dir__/php.exe” Options ExecCGI

Ось на цьому ми закінчимо нашу статтю, залишивши опис основних конструкцій PHP до наступного разу. Я дотримуюсь думки, що вчитися легше на реальних прикладах, а не на абстрактних побудовах, тому наступного разу сумісний приємний з корисним і, вивчаючи конструкції PHP, напишемо повнофункціональний скрипт - гостьову книгу.

Комп'ютерПрес 7"2001

Веб-сервер – програма, яка запущена на локальній чи віддаленій машині, та головне її призначення – дозволяти користувачеві переглядати веб-документи. Коли в адресному рядку вводиться адреса сайту при натисканні клавіші Enterбраузер формує запит, спрямований віддаленому комп'ютеру - веб-серверу.

Apache HTTP-сервер (скорочення від англ. a patchy server) – одна з найбільш популярних та поширених програм, створених для веб-розробників та адміністраторів інтернет-ресурсів. За даними незалежних дослідників, Apache встановлений на 50% комп'ютерів усіх користувачів HTTP-серверів.

Головними перевагами Apache є стабільність, швидкодія і гнучкість, і вони обумовлені модульною організацією, а також тим, що розробку веде відкрита група програмістів, хоч і під офіційною назвою Apache Software Foundation.

Apache підтримує величезну кількість операційних систем та апаратних платформ, і досить часто його використовують під керуванням операційної системи Windows. Важливо і те, що цей web-сервер поширюється абсолютно безкоштовно.

Про те, як встановити сервер Apache для операційної системи Windows 7, йтиметься у цій статті.

Встановлення Apache

Насамперед необхідно завантажити останню версіюдистрибутива Apache без підтримки SSL і запустити інсталяцію. У вітальному вікні потрібно натиснути на «Next», прочитати ліцензійну угоду розробника та підтвердити свою згоду з нею.

Потім у вікні установки необхідно заповнити поля так, як показано на малюнку нижче, а в полі « Administrator's Email Address» вказати адресу своєї електронної пошти, клацнути «Next» та встановити перемикач у положення «Custom».




Далі необхідно створити директорію www на диску C і вказати її як настановної папкидля Apache, клацнути "Next" в цьому і "Install" у наступному вікні. Коли інсталяція закінчиться, натисніть «Finish».

Якщо все пройшло успішно, у треї має з'явитися піктограма керування веб-сервером Apache. Зупинити та перезавантажити його можна, клацнувши на значку лівою кнопкою миші.

Клацнувши по тому ж значку правою кнопкоюмиші можна перейти до різних системних служб операційної системи або відкрити монітор Apache.

Для того, щоб перевірити, чи працює встановлений сервер Apache, наберіть в адресному рядку вашого браузера http://localhost

Якщо з'явилася сторінка з надписом «It works! », отже, встановлення Apacheпройшла успішно і він функціонує правильно.

Базове налаштування веб-сервера

Хоча Apache і є дуже зручним і виключно надійним, не всі готові використовувати його як локальний серверз низки причин, і основна - відсутність навіть у середовищі Microsoft Windowsбудь-якого графічного конфігуратора, що досить незвично більшості користувачів.

Налаштування сервера здійснюється за допомогою ручного редагуванняконфігураційного файлу httpd.conf. Проте, всупереч уявленням про незрозумілість та складність даного процесу, нічого складного в цій операції немає з двох причин: по-перше, для того, щоб зробити з щойно встановленого Apache сервер, який налаштований для прийнятної та комфортної роботи, у файлі конфігурації потрібно поміняти зовсім небагато даних, а по-друге - коментарі httpd.conf містять чимало корисної інформації, яка потрібна для того, щоб розібратися з налаштуванням.

Що необхідно?

  • Запустити Apache під платформою Windows 7;
  • Зберігати у зручній для користувача директорії файли майбутнього сайту (наприклад, C:www);
  • Не мати проблем з кодуванням, а зокрема - з відображенням кирилиці;
  • Можливість працювати з кількома сайтами одночасно.

Щоб успішно вирішити ці проблеми, зайдіть у папку з встановленим Apache, знайдіть та відкрийте у підпапці conf файл httpd.conf . Зверніть увагу, що рядки, які починаються з «решітки», є текстовими коментарями, а як налаштування веб-сервера використані рядки, на початку яких значок «решітки» відсутня.

Для початку потрібно виконати налаштування тієї директорії, яка буде використовуватися сервером як папка веб-сайту. Знайдіть у тексті рядок, який починається з DocumentRoot . Ця директива визначає, яка папка буде кореневою.

Виправте її на DocumentRoot “C:/www”. Слід уточнити, що слеши в цьому файлі повинні бути нахилені вправо, а не вліво, як, мабуть, вже звикли. користувачі Windows. Після вищезгаданих маніпуляцій, проблему з розташуванням вашого сайту вирішено.

Options (визначає, які серверні функції будуть доступні) AllowOverride (визначає, які директиви з .htaccess можуть переважати над такими ж у httpd.conf) Order (встановлює певні правила доступу до сервера)

Список параметрів, що використовуються:

Options. Можливі такі варіанти:

  • Includes – використання SSI дозволено;
  • IncludesNOEXEC – використання SSI дозволено з обмеженнями (не допускаються #include та #exec);
  • Indexes – дозволено використання індексних файлів, і якщо URL-адреса вказує на директорію сайту (наприклад, www.domain.ru/dir/ ), в якій немає індексного файлу, буде показаний вміст цієї директорії, а якщо цієї опції немає – видається оповіщення про те, що доступ заборонено;
  • ExecCGI – виконання скриптів CGI дозволено;
  • FollowSymLinks – сервер слідує за наявними символічними посиланнями директорії (використовується в Unix-системах);
  • SymLinksIfOwnerMatch - сервер слідує за наявними символічними посиланнями директорії лише в тому випадку, якщо цільовий файл має одного власника з посиланням;
  • All - все вищеописане разом дозволено;
  • None – все вищеописане разом заборонено;
  • MultiViews – можливість вибору певного контенту та його видачі залежно від переваг браузера (навіть якщо включено все (Options All). Вказується окремо).

AllowOverride. Варіанти:

  • AuthConfig – дозволяє використовувати директиви для авторизації;
  • FileInfo – дозволяє використання директив для роботи з різними типамидокументів;
  • Indexes - дозволяє використання директив для роботи з файлами індексації;
  • Limit – дозволяє використання директив визначення доступу до хосту;
  • Options – дозволяє використання директив до роботи з певними специфічними функціями директорій;
  • All – усе вищезгадане разом;
  • None – нічого з вищезгаданого разом.

Order. Варіанти:

  • Deny, Allow – Deny визначається перед директивою Allow, доступ дозволено за умовчанням, крім хостів, які вказані в наступному після Deny from рядку;
  • Allow,Deny – Allow визначається перед директивою Deny, доступ заборонений за умовчанням, крім хостів, які вказані в наступному після Allow from рядку;
  • Mutual-failure – дозволено доступ тільки таких хостів, які відсутні в Deny та присутні в Allow.

На основі всього вищесказаного, спробуйте налаштувати ваш сервер. У файлі httpd.conf директива Directory за замовчуванням існує відразу у двох примірниках - і . Перший варіант чіпати не слід, тому в другому встановіть параметри таким чином:

Опції Indexes FollowSymLinks AllowOverride None Order allow, deny Allow from all

Іншими словами, для папки C:/www та всіх її підпапок вибрано такі параметри:

  • З можливої ​​функціональності наявного сервера дозволені індекси в директоріях та переходи за символічними посиланнями;
  • Можливість параметричного перевизначення за допомогою файлів.htaccess повністю відсутня, проте з огляду на те, що ви маєте повний доступ до сервера, вона не є актуальною – все можна налаштувати через httpd.conf;
  • Доступ до веб-сервера дозволений з усіх хостів.

Тепер збережіть файл httpd.conf і перезапустіть Apache за допомогою Apache Monitor або командою apache –k restart у командному рядку. Налаштування кореневої папки сайту завершено.

Потрібно перевірити, чи правильно ви все зробили. Створіть найпростішу веб-сторінку в папці C:www, відкрийте ваш браузер та введіть http://127.0.0.1/ваша_створена_сторінка. Сторінки мають відкритися. В іншому випадку необхідно ретельно перевірити всі зміни у файлі httpd.conf на правильність.

Якщо сторінка успішно відкрилася, є ймовірність, що замість кириличних символів ви побачите символи, що не читаються. Вони можуть відображатися з двох причин. По-перше, веб-сервер надає вашому браузеру, який запросив сторінку, кодування за промовчанням. По-друге, як не дивно, кодування це кирилицею не є.

Якщо горезвісний Internet Explorerв подібних випадках визначає кодування з самої сторінки, то, наприклад, Mozilla Firefox і Opera до подібних дій схильності зовсім не мають, і спосіб виставлення кодування в браузері навряд чи можна назвати зручним. Отже, необхідно налаштувати Apache на видачу за промовчанням необхідного кодування.

Знайдіть у файлі httpd.conf рядок, який починається на AddDefaultCharset . Швидше за все, там вказано кодування ISO-8859-1, у якому відсутні кириличні символи. Поміняйте ISO-8859-1 на windows-1251, збережіть файл та перезапустіть Apache. Тепер коректне відображення російської мови на вашому сайті працюватиме у будь-якому браузері.

На сервері Apache досить просто налаштувати роботу з кількома сайтами. Адреси, які можна використовувати для них – 127.0.0.2, 127.0.0.3 і т.д. При цьому по мережі буде видно лише той, який є сайтом за умовчанням (127.0.0.1), проте для локальної роботице не є критичним. Розділ файлу httpd.conf , в якому проводиться налаштування всього необхідного для цього, знаходиться в самому кінці і називається VirtualHosts .

Встановлення та налаштування локального web-сервера Apache, PHP, MySQL під операційну систему Windows

навчальний посібник

2.3. Налаштування конфігураційного файлу Apache

Apache по праву вважається одним із найкращих веб-серверів, проте змусити його правильно працювати не кожному під силу. У кращих традиціях *nix-програм, всі налаштування здійснюються редагуванням текстового файлу httpd.conf. Значно полегшити конфігурування може графічна оболонка ApacheConf 3.3: http://apache-gui.com, http://www.zecos.com, [email protected]. ApacheConf 3.3 дозволяє редагувати файл httpd.conf, використовуючи графічний інтерфейс(GUI):

Усі параметри сервера в утиліті зручно розбиті на розділи ( глобальні параметри, віртуальні хости і т.п.), має майстри з установки SSI, PHP та безліч додаткових функцій. Адміністратори-початківці зможуть покращити свої знання Apache - багато директив забезпечені коментарями, є підказки російською мовою. Досвідченим користувачампрограма допоможе заощадити час під час налаштування. Підтримуються версії Apache 2 і 1.3. Можна редагувати як локальний файл httpd.conf, так і розташований на FTP-сервері.

Конфігурування Apache - складне заняття. На щастя, всі директиви сервера докладно описані у супровідній документації, включеній до дистрибутиву. Існує й online-версія керівництва. Вона доступна за адресою http://httpd.apache.org/docs/. Головна перевага документації на сайті в тому, що по ній можна проводити пошук, що недоступне при використанні посібника з дистрибутива.

Слід точно виконувати перелічені нижче кроки, не пропускаючи і не відкладаючи жодного.

Створіть у папці home папку localhost:

У папці localhost зберігатиметься вміст головного хоста Apache-того, який буде доступний за адресою http://localhost.

У папці localhost слід створити папки cgi-bin та www:

У папці cgi-bin зберігатимуться CGI-сценарії, а в папці www - програми на PHP та різні документи. Зверніть увагу CGI-сценарії – це не зовсім те саме, що PHP – скрипти. Тому вони повинні розташовуватися окремо.

Для налаштування Apache необхідно відкрити файл D:usrApacheconfhttpd.conf за допомогою Блокнота або Notepad++. Це єдиний файл, який потрібно настроїти. Перш ніж почати редагування файлу рекомендується зробити його резервну копію (наприклад, з назвою: httpd.conf рез коп вих).

Приступимо до налаштування.

1. Першу опцію, яку ми встановимо, буде шлях до Apache. Змініть її так: ServerRoot "/usr/Apache"

3. Директиву BindAddress використовувати не рекомендується, тому залиште її закоментованою:

4. Позначте рядок підключення модуля: LoadModule rewrite_module modules/mod_rewrite.so

5. До кінця списку завантажуваних модулів додайте рядок: LoadModule php4_module "/usr/php/sapi/php4apache.dll"

Цей рядок підключає PHP модуль для правильної роботи з Apache. Якщо його не підключити, то можуть виникати проблеми під час роботи зі скриптами.

6. Після підключення модуля PHP додайте два рядки:

#For the module mod_rewrite

# Reconstruction of complete module list from all available modules

# (Статичні та shared ones) до achieve correct module execution order.

AddModule mod_setenvif.c

помістіть перед словами:

# Dynamic Shared Object (DSO) Support

Перейдемо до другого розділу httpd.conf - конфігурація сервера за замовчуванням.

8. У опції ServerAdmin слід вказати адресу, на яку слід надсилати повідомлення у випадку неправильної роботисервера:

ServerAdmin [email protected]

9. Опція ServerName задає ім'я сервера:

ServerName localhost

10. Опція DocumentRoot вказує каталог, у якому розміщені web-сторінки: DocumentRoot "/home"

11. Опція івикористовується застосування опцій до конкретного каталогу. Замініть наступний блок:

# doesnt give it to you.

Options Indexes FollowSymLinks MultiViews

# "AuthConfig", and "Limit"

AllowOverride None

Order allow,deny

# Це може бути "None", "All", або будь-яка комбінація "Indexes",

# "Includes", "FollowSymLinks", "ExecCGI", або "MultiViews".

# Note that "MultiViews" повинні бути назвені *explicitly* --- "Options All"

# doesnt give it to you.

Options Indexes FollowSymLinks Includes MultiViews

# Це controls which options the .htaccess files in directories can

# override. Чи може бути "All", або будь-яка комбінація "Options", "FileInfo",

# "AuthConfig", and "Limit"

AllowOverride All

# Controls who can get stuff from this server.

Order allow,deny

У цьому блоці було налаштовано папку home. Давайте розберемо значення опцій.

Директива Options визначає, які особливості сервера доступні в даному каталозі:

Indexes - якщо запитаний URL відповідає папці, і у цій папці немає нічого відповідного DirectoryIndex (наприклад, index.html), то сервер виведе зміст цієї папки;

FollowSymLinks - дозволити переходи за символічними посиланнями ( створюваною командою ln);

Includes - дозволити SSI (Server Side Includes);

MultiViews – дозволити підтримку багатьох мов.

Директива AllowOverride дозволяє скасовувати, за допомогою файлів.htaccess, раніше встановлені директиви. Якщо ця директива встановлена ​​в None, то файл.htaccess ігнорується, якщо в All, то всі директиви.htaccess файлу будуть допускатися.

Директиви Order allow,deny і Allow from all визначають, хто може отримувати будь-що з цього сервера.

12. Закоментуйте наступний модуль:

#

# UserDir "D:/usr/Apache/users/"

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

14. У блоці:

Order allow,deny

16. Якщо ви бажаєте, щоб у повідомленнях про помилку висвічувався e-mail адміністратора, замініть у наступній опції On на Email:

ServerSignature EMail

17. Знаходимо такий рядок:

ScriptAlias ​​/cgi-bin/ "D:/usr/Apache/cgi-bin/"

і замінюємо її іншим рядком: ScriptAlias ​​/cgi-bin/ "/home/cgi-bin/"

Цей каталог cgi-bin, в якому повинні розташовуватись ваші CGI - скрипти. Він був створений у директорії home.

18. Встановіть такі опції для папки cgi-bin:

AllowOverride All

19. Шукаємо рядок AddType application/x-tar .tgz, він розташований після налаштування пріоритету мов. Перед цим рядком необхідно додати блок підключення php:

#AddType application/x-httpd-php phtml php3 php

#ScriptAlias ​​/__php_dir__/ "/usr/php/"

#Action application/x-httpd-php "/__php_dir__/php.exe"

Перший рядок вказує на розширення файлів, які повинні оброблятися PHP інтерпретатором.

У другому рядку пов'язується справжній шлях до PHP та псевдонім, а в третьому вказується файл інтерпретатора.

Ці рядки поки що слід закоментувати, інакше можуть виникнути помилки. Після налаштування PHP коментарі потрібно буде зняти.

20. Далі налаштовують SSI - дуже потужний і водночас дуже простий інструмент, здатний допомогти при створенні та підтримці сайту. За допомогою SSI-директив, їх ще називають SSI-вставками, можна включати в сторінку інші файли, результати роботи програм, значення системних змінних та ін. елементи, що повторюються по всьому сайту. Для підключення SSI знаходять рядки, знімають із них коментарі та змінюють, як показано нижче: AddHandler cgi-script .cgi

Потім треба розкоментувати та змінити:

AddType text/html .shtml .shtm

AddHandler server-parsed .shtml .shtm

Цими директивами налаштовуємо SSI. Apache оброблятиме файли із зазначеними розширеннями процесором SSI. Це найбільш стандартний перебіг. Втім, замість.

І, звичайно, потрібно включити сам "механізм" вкладення, а для цього додати до команди Options слово "Includes". Тоді рядок з командою Options може набути вигляду: Options Indexes FollowSymLinks Includes

Ця функція дозволяє Apache передачу файлів, що не супроводжуються заголовками http.

21. Для використання карт зображення та карт типів розкоментуйте наступні рядки:

AddHandler imap-file map

AddHandler type-map var

22. До кінця файлу додайте рядок:

Include conf/vhosts.conf

Збережіть усі зміни файлу httpd.conf. Створіть резервну копію робочого файлу httpd.conf (наприклад, під назвою: httpd.conf робочий). Це може виявитися корисним для відновлення системи.

23. Створіть у папці D:usrApacheconf файл vhosts.conf:

Допустимо, що Вам доведеться працювати з кількома серверами. Розробники Apache передбачили цей варіант. При налаштуванні Apache спочатку зроблено так, щоб з появою нового сервера на Вашому комп'ютері його було легко підключити та налаштувати. Для цього при налаштуванні Apache створюють файл vhosts.conf і в кінці httpd.conf додають рядок «Include conf/vhosts.conf», яка підключає цей файл.

Додавання нового сервера докладно описано у розділі 2.4.

24. Тепер перезапустіть Apache: Пуск > Усі програми > Apache HTTP Server > Control Apache Server > Restart.

Якщо все зроблено правильно, то відкриється консольне вікно:

У консольному вікні повідомляється, що Apache запущено, PHP 4.3.9RC3 для правильної роботи Apache з PHP встановлений і працює.

Якщо є помилки, то протягом 30 секунд воно буде запущено і в ньому буде написана помилка, за якою Apache не може бути запущено, наприклад:

Повідомляється, що на лінії 327 файлу httpd.conf є помилка. Помилка часто виникає, якщо забули скопіювати файл php4ts.dll у каталог C:WindowsSystem32.

Помилка може виникнути також, якщо забули створити файл vhosts.conf і хоча б один віртуальний хост.

Автоматизована настройка TCP/IP, BOOTP. Динамічна настройка(DHCP)

Протокол ВООТР проектувався у тому, щоб протоколи IP (Internet Protocol) і UDP (User Datagram Protocol) могли використовуватися передачі інформації комп'ютерам, бажаючими налаштувати свою конфігурацію. Комп'ютер, що згенерував запит.

Гнучка система інформаційної підтримки підвищення кваліфікації персоналу ДП № 9

Apache HTTP-сервер - відкритий веб-сервер для UNIX-подібних, Microsoft Windows, Novell NetWareта інших операційних систем. На сьогоднішній день є найуживанішим Веб сервером мережі Інтернет.

Рідкісний випадок, коли веб-сервер використовується з дефолтними налаштуваннями. Як правило, перед запуском його потрібно налаштувати під конкретні завдання. Для цього потрібно відредагувати файл конфігурації httpd.conf...

Інсталяція, налаштування та супровід Web-сервера Linux

ServerType Для цієї директиви значенням за промовчанням є ServerType standalone. Сервери, що працюють у автономному режимі(standalone), запускаються із завантажувальних сценаріїв при запуску системи...

Файл конфігурації є XML - файл, у якому зберігаються дані, необхідні підсвічування синтаксису. Файл складається з кореневого елемента language, який у свою чергу містить 3 дочірні елементи: style, keywords і types...

Написання текстового редактора з підсвічуванням синтаксису

Для початку створимо 3 змінні типу xmlChar: xmlChar *uri; // використовується для зберігання атрибутів xmlChar *color; // використовується для зберігання значення кольору xmlChar * font; // використовується для зберігання значення шрифту XML файлувідбувається у функції...

Поняття та використання Network File System

У найпростішому випадку файл /etc/exports є єдиним файлом, що вимагає редагування для налаштування сервера NFS.

Подання графічних даних. Перетворення форматів. Використання спеціальних ефектів

Рисунок 2.1 – Схема відкриття файлу. На малюнку 2.2 наведено алгоритм відкриття файлу формату TGA. Розглянемо його докладніше. Спочатку відкриття файлу з ім'ям Ім'яФайла. tga...

Проект розробки HTTP-сервера

Щоб запустити інсталяційний файл (install.php), необхідно зайти в Moodle використовуючи веб-браузер або просто наберіть http://localhost/install.php у рядку адреси (Інсталер буде використовувати cookie. Якщо Ви побачите спливаюче вікно з повідомленням про це). .

Розробка Web-сайту для кафедри Обчислювальна технікаі інформаційні технології"

Найпоширеніший Web-сервер у світі – це Apache. За даними компанії Netcraft, загальна кількість Web-вузлів, що працюють під його керуванням, до кінця 1998 р. досягла 2 млн. (55% загальної кількості вузлів) і постійно зростає.

Розробка інформаційної моделівзаємодії пенсійного фонду із платниками внесків

Для коректної роботи електронного обмінуУ програмі ЗУП повинні бути обов'язково задані певні налаштування. Зокрема, має бути введена інформація про відділення ПФР, з яким передбачається здійснювати обмін даними.

Розробка системи збору та обробки даних

Для моделювання системи серед MAX+plusII необхідно розробити файл конфігурації мовою AHDL. До нього увійдуть такі мега-функції, як: lpm_counter - лічильник, необхідний для розподілу частоти.

Файл конфігурації є XML-файлом, в якому зберігаються дані, необхідні для підсвічування синтаксису. Файл складається з кореневого елемента language, який у свою чергу містить 3 дочірні елементи: style, keywords і types...

Розробка текстового редактора з підсвічуванням синтаксису мов програмування

Для початку створимо 3 змінні типу xmlChar: xmlChar *uri;//використовується для зберігання атрибутів xmlChar *color;//використовується для зберігання значення кольору xmlChar *font; .

Apache – найпопулярніший веб-сервер у мережі Інтернет, який обслуговує більше половини активних сайтів.

У цій статті ми розглянемо загальні конфігураційні файли та основні параметри Apache у системі Ubuntu/Debian

Примітка: Файли Apacheвідрізняються в залежності від дистрибутива, тому ця стаття не підходить користувачам RHEL.

Встановлення Apache в Ubuntu/Debian

Якщо веб-сервер Apache ще не інстальовано, використовуйте команди:

sudo apt-get update
sudo apt-get install apache2

Щоб переконатися, що інсталяція пройшла успішно, відкрийте в браузері IP-адресу свого сервера. На екрані з'явиться вітальна сторінка Apache:

It works!
Це являє собою детальну веб-сторінку для цього сервера.
The web server software is running but no content has been added, yet.

Ієрархія файлів Apache

У Ubuntu та Debian Apache зберігає конфігураційні файли в папці /etc/apache2.

cd /etc/apache2
ls -F
apache2.conf envvars magic mods-enabled/ sites-available/
conf.d/ httpd.conf mods-available/ ports.conf sites-enabled/

Ця папка містить ряд простих текстових файлів та підкаталогів. Найважливіші з них:

  • apache2.conf: головний файл конфігурації сервера. У ньому можна виконати багато конфігурацій.
  • ports.conf: цей файл задає порти, які прослуховуються віртуальними хостами. Перевірте цей файл під час налаштування SSL.
  • conf.d/: цей каталог керує окремими аспектами конфігурації Apache. Наприклад, з допомогою часто визначається конфігурація SSL і стандартна політика безпеки.
  • sites-available/: цей каталог зберігає всі доступні віртуальні хости, які визначають, який контент обслуговуватиметься на сайті. Ці хости не активні.
  • sites-enabled/: цей каталог визначає активні віртуальні хости. Зазвичай він містить символічні посилання на файли, визначені в каталозі sites-available.
  • mods-/: ці каталоги працюють за тим же принципом, що і sites-available та sites-enabled. Вони зберігають модулі.

Як бачите, конфігурації Apache не обмежені головним конфігураційним файлом, вони розподілені між кількома файлами та каталогами. Таку структуру конфігурацій можна розширити за допомогою нових файлів.

Конфігураційний файл Apache

Основні налаштування Apache зберігаються у /etc/apache2/apache2.conf.

Цей файл містить три основні розділи: глобальні налаштування Apache, налаштування сервера за промовчанням та конфігурації віртуальних хостів.

У Ubuntu та Debian більша частина файлу відведена під глобальні налаштування, а конфігурація сервера за умовчанням та налаштування віртуальних хостів обробляються в кінці файлу за допомогою директиви Include.

Наприкінці файлу ви знайдете безліч налаштувань Include. Вони визначають модулі, додають документ ports.conf, певні файлиз каталогу conf.d/ та налаштування віртуальних хостів із каталогу sites-enabled/.

Зосередимося на глобальних параметрах веб-сервера Apache.

Глобальні налаштування Apache

Цей розділ розглядає важливі параметри глобальних параметрів Apache.

Timeout

За замовчуванням цей параметр має значення 300. Це означає, що на виконання кожного запиту сервер має максимум 300 секунд. Найчастіше це значення дуже велике, і його рекомендують зменшити до 30-60 секунд.

KeepAlive

Якщо цей параметр має значення On, сервер дозволить клієнту вимагати кілька об'єктів у межах одного з'єднання. Якщо параметр має значення Off, кожен новий запит буде створювати індивідуальне з'єднання. Така поведінка може призвести до перенавантаження сайту з великим трафіком.

MaxKeepAliveRequests

Цей параметр дозволяє визначити максимальна кількістьзапитів для одного з'єднання. Це дозволяє збільшити продуктивність Apache.

Значення 0 дозволить веб-серверу обробляти необмежену кількість запитів у межах одного з'єднання.

KeepAliveTimeout

Цей параметр визначає проміжок часу між запитами. Якщо протягом зазначеного часу клієнт не створив наступного запиту. Веб-сервер перерве з'єднання. Якщо надалі клієнт відправить запит, сервер створить нове з'єднання.

Налаштування MPM

Щоб дізнатися, за допомогою яких модулів було скомпільовано Apache, відкрийте термінал і наберіть:

apache2 -l
Compiled in modules:
core.c
mod_log_config.c
mod_logio.c
prefork.c
http_core.c
mod_so.c

Як бачите, у цьому випадку веб-сервер скомпільований з модулем prefork.c та файлом apache2.conf.

Конфігурації віртуальних хостів

Стандартний віртуальний хост знаходиться у файлі default у каталозі sites-available.

Щоб ознайомитися із загальним форматом віртуального хоста, відкрийте цей файл:

sudo nano /etc/apache2/sites-available/default

ServerAdmin webmaster@localhost
DocumentRoot /var/www

Options FollowSymLinks
AllowOverride None


Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all

. . .

За умовчанням віртуальний хост обробляє запити порту 80.

Це не означає, що веб-сервер обов'язково оброблятиме кожен запит через цей порт. Apache може перевизначати конфігурації.

Налаштування віртуального хоста найвищого рівня

Ці параметри встановлюються у розділі Virtual Host та застосовуються до всього віртуального хоста.

Параметр ServerAdmin вказує контактну адресу електронної пошти, яка буде використовуватись у разі виникнення проблем на сервері. Цю адресу можна вставити на сторінку помилки. Для цього параметр ServerSignature (у файлі /etc/apache2/conf.d/security) повинен мати значення Email.

Директива ServerName задає доменне ім'яабо IP-адресу сервера. Це індивідуальний параметр кожного віртуального хоста, який може перевизначити параметри за замовчуванням, якщо він збігається зі значенням ServerName.

Параметр ServerAlias ​​дозволяє додати аліаси сайту - альтернативні імена та шляхи, що ведуть до одного контенту. Так, наприклад, часто встановлюється аліас домену з www.

DocumentRoot задає каталог, де веб-сервер зберігає контент даного віртуального хоста. У Ubuntu для цього за промовчанням використовується /var/www.

Налаштування каталогів

У конфігурації віртуального хоста є спеціальний розділ налаштування обробки окремих каталогів файлової системи. Ці параметри можна також визначати.

Спочатку віртуальний хост пропонує набір правил для каталогу/(root-каталог). Цей розділ забезпечить базову конфігурацію віртуального хоста, оскільки він стосується всіх файлів, які обслуговуються у файловій системі.

За замовчуванням Ubuntu не накладає жодних обмежень на файлову систему. Apache рекомендує додати кілька стандартних обмежень доступу, наприклад:


Options FollowSymLinks
AllowOverride None
Order Deny,Allow
Deny from All

Це заблокує доступ до всього контенту, якщо в наступних визначеннях каталогів не зазначено інше.

Параметр AllowOverride дозволяє налаштувати перевизначення конфігурацій за допомогою .htaccess файлів. Щоб перевизначити налаштування, файл.htaccess повинен знаходитись у каталозі з контентом. За замовчуванням цю функцію вимкнено.

Налаштування Alias ​​та ScriptAlias

Іноді перед розділом Directory йдуть параметри Alias ​​та ScriptAlias.

Директива Alias ​​дозволяє додавати до контенту, що обслуговується, каталоги поза DocumentRoot.

ScriptAlias ​​працює аналогічним чином, але містить шлях до каталогів з файлами, що виконуються.

Наприклад, такий рядок у віртуальному хості для сайту example.com відкриє доступ до контенту в каталозі /path/to/content/ за запитом example.com/content/.

Alias ​​/content/ /path/to/content/

Пам'ятайте, що, відкриваючи доступ до додаткових каталогів, потрібно встановлювати обмежені привілеї на них.

Включення сайтів та модулів в Apache

Створивши файл віртуального хоста, ви можете увімкнути його. Для цього потрібно створити символічне посилання на файл у каталозі sites-enabled:

sudo a2ensite файл_віртуального_хоста

Увімкнувши сайт, перезапустіть Apache, щоб веб-сервер перечитав конфігурації:

sudo service apache2 reload

Щоб вимкнути віртуальний хост, потрібно видалити символьне посилання із sites-enabled:

sudo a2dissite файл_віртуального_хоста

Після цього потрібно знову перезапустити веб-сервер:

sudo service apache2 reload

Увімкнути та вимкнути модуль Apache можна за допомогою наступних команд (відповідно):

a2enmod
a2dismod

Вони працюють так само, як і раніше згадані команди a2ensite та a2dissite. Після ввімкнення або вимкнення модуля потрібно перезапустити веб-сервер.

Висновок

Ця стаття охоплює лише базові налаштуванняфайли веб-сервера Apache Набір функцій Apache можна значно розширити за допомогою модулів.

Якщо вам потрібна додаткова інформація про веб-сервер, зверніться до

Раніше у нашій серії з основ Linux ми розглядали основи роботи з веб-сервером Apache. Він є найбільш широко використовуваним у світі веб-сервером в Інтернеті (станом на липень 2015 року частка Apache становила 38%, IIS - займав 26%, а Nginx - 15%). Тому чим більше ви про нього знаєте і розумієте як він працює, тим більших успіхів ви досягнете за його злому.

Сьогодні ми розглянемо основи налаштування сервера Apache. Як ми писали раніше, конфігурування та налаштування майже всіх додатків у Linux або Unix здійснюється через конфігураційні файли, які є звичайним текстом. Apache тут не є винятком. Тому в цій статті ми зосередимося на файлі конфігурації apache2.conf, який знаходиться в директорії /etc/apache2.

Крок 1. Запустіть Apache2

Почнемо з того, що запустимо Apache2. Зробимо це через графічну оболонку оточення Kali, перейшовши в Applications -> Kali Linux-> System Services -> HTTP -> apache2 start, як показано на скріншоті нижче.

Або запустіть його через командний рядок, набравши в терміналі наступну команду

Kali >service apache2 start

Це запускає демон Apache2 і з цього моменту веб-сервер повинен обробляти наш контент в Інтернеті.

Крок 2. Перевірте працездатність сервера

Щоб перевірити, чи працює наш сервер Apache, просто перейдемо в браузері по localhost або 127.0.0.1. Якщо ви бачите сторінку як на скріншоті нижче, це означає, що сервер працює нормально!

Крок 3. Відкрийте конфігураційний файл

Щоб налаштувати 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. Щоб налаштувати сервер, ми зараз спробуємо ознайомити вас із усіма ключовими моментами цього файлу.

Крок 4. ServerRoot

Прокрутимося вниз, пропустивши всі коментарі, і знайдемо рядок #70, де починається розділ глобальних налаштувань. Тут ми бачимо налаштування ServerRoot. Це вершина дерева директорій, де сервер Apache зберігає всі пов'язані з роботою сервера файли. Рядок #84 визначає ServerRoot. Ми можемо просто розкоментувати цей рядок, якщо хочемо встановити /etc/apache2 як ServerRoot. Ми радимо вам це зробити.

Крок 5. Timeout

У наступному розділі ми маємо змінні, які визначають значення параметрів: Timeout, KeepAlive, MaxKeepAliveRequests і KeepAliveTimeout.

  • Timeout: це час, протягом якого сервер повинен виконати запит користувача. Його значення за замовчуванням – 300, а це означає, що сервер повинен обробити кожен запит протягом 300 секунд або 5 хвилин. Це, безперечно, занадто довго і це значення можна встановити в 30 секунд.
  • KeepAlive: це означає, що сервер залишається живим (тримає з'єднання) для декількох запитів від одного клієнта. За замовчуванням встановлено значення On (ввімкнено). Це означає, що клієнтам не потрібно створювати нове з'єднання кожного запиту до нашого сервера. Такий підхід дозволяє заощаджувати ресурси сервера.
  • MaxKeepAliveRequests: це значення визначає максимальну кількість секунд, допустиму між запитами, отриманими від з'єднання з одним клієнтом. Якщо ми встановимо це значення 0, то кількість часу не обмежена.
  • KeepAliveTimeout: Це кількість часу між запитами для визначення того, що з'єднання ще живе (встановлене).

Ми пропонуємо вам залишити всі значення за промовчанням, крім параметра "Timeout". Кожна ситуація відрізняється, і вам може знадобитися змінити ці значення за промовчанням для того, щоб адаптувати продуктивність сервера до конкретного середовища.

Крок 6. Користувач та групи Apache2

Давайте знову прокрутимо кілька рядків у файлі apache2.conf, поки не дійдемо до рядка #177. Тут ми можемо встановити користувача та групи Apache2. Зверніть увагу на коментар до рядка #177. Там зазначено, що ми можемо встановити ці змінні у файлі envvars ( змінні оточення). Залишимо це питання для майбутніх статей, але поки що просто майте на увазі, що і User (користувач) і Group (група) є змінними, значення яких беруться з файлу /etc/apache2/envvars.

І наостанок, останній розділ, що має велике значення для безпеки Apache, починається з рядка #193. Цей розділ дає гарантії, що веб-клієнти не зможуть отримати доступ до файлів .htaccess та .htpasswd.

Крок 7. Логування

У наступному розділі описано, як Apache керує логами (журналами).

У першому підрозділі ми звертаємось до параметра HostNameLookups. Ця директива повідомляє Apache2, чи повинен виконувати пошук DNS, коли він записує в лог встановлене з'єднання. За умовчанням «Off» (вимкнено) Apache2 працює набагато краще.

Крок 8. Доступні сайти

Тепер подивимося на каталог site_available (доступні сайти) і, найголовніше, на той файл, який знаходиться в ній за замовчуванням. Його часто називають файлом віртуальних хостів (Virtual Hosts) за промовчанням. Відкрийте цей файл, набравши в консолі:

Kali > leafpad /etc/apache2/site_available/default

Як бачите, у цьому файлі є три критичні області. Перший рядок визначає, який порт слухає веб-сервер. Тут визначено, що слухає будь-який інтерфейс на 80-му порту (*: 80). Другий рядок визначає адресу електронної пошти, на яку потрібно надсилати повідомлення у разі виникнення проблем із сервером. За замовчуванням там стоїть адреса Якщо ви є системним адміністратором, то тут ви можете вказати вашу адресу електронної пошти. Третій елемент може бути найважливішим – DocumentRoot. Він визначає, де буде розміщуватись контент для цього віртуального хоста, значенням за замовчуванням є директорія /var/www. Ми пропонуємо вам залишити все у тому вигляді, в якому це було визначено розробниками.

Крок 9. Порти

Нарешті, ми можемо перейти у файлі apache2.conf ще нижче до рядка #248 - "include port.conf". Ця директива просто повідомляє Apache про необхідність перейти до файлу port.conf, щоб знайти порти, які він повинен прослуховувати.

Тепер, якщо ми відкриємо файл port.conf, побачимо, що він налаштований на прослуховування 80-го порту (рядок #9). У наступному розділі, який починається з рядка 11, перевіряється, чи модуль mod_ssl.c, і якщо він включений, то відкривається 443-й порт (рядок 17).