Apache - установка і настройка

Установка Apache 2.2 в Windows

Установка і запуск сервера Apache 2.2 в Windows XP з використанням бінарного дистрибутива з інтегрованим інсталятором не представляє складнощів (інструкції в статті по більшої частини застосовні і для установки в Windows Vista і Windows 7. тестування проводилося виключно для установки Apache в Windows XP).

Слід врахувати, що якщо комп'ютер підключений до локальної мережі / інтернету - сайти під управлінням Apache, за замовчуванням, можуть бути доступні всім користувачам локальної мережі або інтернет.

Після запуску файлу-інсталятора Apache 2.2 "httpd-2.2.20-win32-x86-openssl-0.9.8r.msi" натискаємо кнопку "Next", погоджуємося з ліцензійною угодою. У поля "Network Domain" і "Server Name" вводимо "localhost" (без лапок). "Administrator`s Email Address" - email адміністратора, наприклад: admin @ localhost. Ми залишаємо вбрання за замовчуванням поле "For All Users, on Port 80, as a Service - Recommendend", котре робить Apache доступним для всіх користувачів системи на 80 порту в якості автоматічесскі запускається сервісу при запуску Windows.

Наступний крок майстра (Setup Type) - вибір типу установки: типова (Typical) і виборачная (Custom). Слід вибрати "Custom" і натиснути "Next". Далі потрібно змінити шлях установки на "C: \ apache2.2.20" натиснувши кнопку "Change" і залишити обрані за замовчуванням компоненти як є. Після натискання "Next" і "Install" HTTP-сервер Apache буде встановлений.

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

Дізнатися причину збою, точніше подивитися повідомлення про помилку при запуску Apache можна за допомогою консолі Windows ( "Пуск" -> "Виконати" -> cmd -> "Ок"), вручну запустивши сервіс. Команди управління Apache через консоль:

      httpd.exe -k start (Пуск)
      httpd.exe -k stop (Зупинка)
      httpd.exe -k restart (Перезапуск)

Щоб Windows не видав помилку:

"Httpd.exe" не є внутрішньою або зовнішньою командою, що виконується програмою або пакетним файлом.

необхідно прописати шлях до bin директорії Apache в Windows змінну Path, що в подальшому може стане в нагоді для швидкого запуску утиліт командного рядка Apache, наприклад таких, як htpasswd.exe. Це можна зробити відкривши меню "Пуск", знайти "Мій комп'ютер" і натиснувши на ньому правою кнопкою миші вибрати із списку "Властивості". Далі вибрати закладку "Додатково" і натиснути кнопку "Змінні середовища". У вікні "Системні змінні" вибираємо змінну "Path" і тиснемо кнопку "Змінити". У самий початок поля "Значення змінної" додаємо шлях до bin каталогу Apache:

Додавання шляху в змінну Path Windows до директорії bin Apache

Для того, щоб зміни в Path вступили в силу, необхідно перезавантажити комп'ютер.

Помилки при запуску Apache

Запуск сервера Apache вручну буде дуже корисний для виявлення помилок при підключенні PHP як модуля і його подальшій настройці. При запуску, і перезавантаження Apache за допомогою штатної консолі повідомлення про помилки, на жаль, не відображаються.

Однією з найбільш розповсюдженний помилок, що виникає при запуску Apache, є зайнятість 80-го порту іншою програмою, наприклад Skype або ISS. В результаті, при старті сервера командою httpd.exe -k start отримуємо наступне повідомлення:

httpd.exe: Could not reliably determine the server's fully qualified domain name, using 192.168.1.2 for ServerName
(OS 10048) + сvўею YOрчЁх ° рхЄё юфею шёяюи№чютрешх рфЁхёр yoю'хЄр (яЁюЄю'юи / yoхЄхтющрфЁхё / яюЁЄ). make_sock: could not bind to address 0.0.0.0:80 no listening sockets available, shutting down
Unable to open logs
Note the errors or messages above, and press the key to exit. 30.

Повідомлення "could not bind to address 0.0.0.0:80 no listening sockets available" говорить про те, що 80-й порт вже зайнятий. Подивитися, який процес займає 80-й порт можна запустивши в командному рядку Windows: netstat -anb і почекавши кілька хвилин, поки не відбудеться з весь список. Тепер потрібно налаштувати ПО, що заважає Apache, на інший порт (в настройках програми), видалити його, або, переналаштувати Apache на інший порт.

Для того, щоб прибрати не критичну, але мозолящую очі помилку: "httpd.exe: Could not reliably determine the server's fully qualified domain name, using 192.168.1.2 for ServerName", необхідно расскоментіровать рядок, в httpd.conf:

Запускати і зупиняти службу Windows можна і такими командами з командного рядка Windows:

      net start apache2.2 (Запуск)
      net stop apache2.2 (Зупинка)

Ось тільки в цьому випадку, повідомлення про помилки при запуску Apache будуть не інформативними.

Подивитися стан HTTP-сервера Apache можна і за допомогою служб Windows: "Пуск" -> "Панель управління" -> "Адміністрування" -> "Служби" -> "Apache 2.2". Тут також можна зупинити і запустити HTTP-сервер.

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

Основний файл з настройками Apache httpd.conf розташований за замовчуванням в директорії conf, яка знаходиться в корені настановної директорії Apache (якщо Apache встановлений згідно з інструкціями статті - директорія Apache: C: \ apache2.2.20). Дістатися до файлу конфігурації Apache можна через: "Пуск" -> "Всі програми" -> "Apache HTTP Server 2.2" -> "Configure Apache Server" -> "Edit the Apache httpd.conf Configuration File".

Довільна частина конфігураційного файлу Apache httpd.conf

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

Приклад використання "правильної" прямий косою риси "/" в шляхах до файлів в httpd.conf

Також, слід знати, що щоб настройки, змінені в httpd.conf, вступили в силу, необхідно кожен раз після їх редагування, перезавантажувати або зупиняти і знову запускати сервер Апач.

Підключення PHP як модуль Apache

Знаходимо в httpd.conf безліч рядків, що починаються з LoadModule і після останньої вставляємо:

LoadModule php5_module "c: /php5.2.17/php5apache2_2.dll"
PHPIniDir "c: /php5.2.17"

Перший рядок підвантажує модуль php5apache2_2.dll, друга - вказує інтерпретатора PHP, де слід шукати головний конфігураційний файл PHP - php.ini. У попередніх версіях PHP, необхідно було переміщати php.ini в головний каталог Windows, що вносило деяку плутанину, при налаштуванні PHP.

DirectoryIndex index.php index.html

Після збереження файлу налаштувань, потрібно перевантажити Apache. щоб зміни вступили в силу. Бажано навіть не перезавантажувати, а вимкнути і включити Апач, з використанням командного рядка, щоб в разі виникнення помилок, побачити повідомлення про помилку.

Тепер необхідно упевнитися, що PHP-скрипти виконуються. Для цього, в каталозі C: ​​\ apache2.2.20 \ htdocs \ потрібно створити файл phpinfo.php з таким вмістом:

Лог-файли Apache

З лог-файлів Apache, можна дізнатися багато цікавого, наприклад, чому Apache не запуститься? За замовчуванням, основні лог-файли зберігаються тут: C: \ apache2.2.20 \ logs. Змінити їх місце розташування, можна шляхом настройки відповідних параметрів httpd.conf:

VirtualHost Apache

Віртуальні хости Apache служать для обробки одним сервером Apache декількох різних сайтів. Детальна інформація за директивою VirtualHost: "Директива Apache VirtualHost". Нижче буде розглянуто приклад, як в Apache, встановленому в Windows, відкрити підтримку декількох сайтів.

Доменна зона "lc" (скорочення від англійського "local") буде служити визначенням того, що відкривається сайт, розташовується на локальному комп'ютері. Щоб ОС Windows перенаправляла всі запити до локальних сайтів куди слід, необхідно відредагувати файл hosts (наприклад, за допомогою блокнота), що знаходиться в директорії: C: \ WINDOWS \ system32 \ drivers \ etc \. Після "127.0.0.1 localhost" (хоча, по суті, місце розміщення додаються рядків у файлі може бути будь-яким), необхідно додати два рядки і зберегти зміни:

127.0.0.1 mysite.lc
127.0.0.1 phpmyadmin.lc

Настав час "пояснити" Apache, що у кожного сайту є свої каталоги, для чого і знадобляться директиви-контейнери . Але перед цим, потрібно створити і відредагувати два файли з ім'ям index.php, які будуть являти собою тестові сайти, і розмістити їх в підпапках "public".

Текст файлу index.php для C: \ www \ mysite.lc \ public \

Все добре. На локальному комп'ютері Apache працює. У локальній мережі Apache працює. А ось з мережі інтернет сервер Apache недоступний.

"При будь-якому значенні порту Listen" - Швидше за все у вас на 80 порту висить якесь інше додаток. Знайдіть його і відключіть / видаліть / переведіть на інший порт. Як це зробити - написано в статті. Як варіант - переведіть Apache на інший порт.

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

Ваше питання мені не зрозумілий.

В інструкції тактовно промовчали, що потрібно в httpd.conf додати
AddType application / x-httpd-php .php

Цей рядок не обов'язкова - PHP буде працювати і без цієї директиви.

Причина точно не в збірці Windows. Після того, як ви зробили все, як в інструкції, яку помилку видає браузер після звернення до mysite.lc і phpmyadmin.lc?

Після зміни файлу hosts спробуйте перезавантажити комп'ютер. Якщо спочатку спробувати відкрити в браузері site.ru, а тільки після цього змінити файл hosts - сайт не відкриється. Далі запустіть в cmd команду ping на localhost і site.ru. Якщо site.ru пінгуєтся (127.0.0.1) - проблема в налаштуваннях Apache. Також, спробуйте на час тесту відключити всі антивіруси / файрволи - можливо проблема в них. Якщо нічого не допоможе - перевстановіть Apache заново, повністю дотримуючись всіх інструкцій статті (порядок дій, назви тестових сайтів і т.д.) - має всі заробити. А вже після того, як все запрацювало, починайте пробувати самостійну коригування конфігов.

Велике вам спасибі! Все працює!

у мене php сторінка початку інтерпретуватися лише після додавання
AddType application / x-httpd-php .php

"У мене php сторінка початку інтерпретуватися лише після додавання
AddType application / x-httpd-php .php "
Те ж саме, 10 раз перезавантажувався, поки не поліз в інет і не побачив, що ще потрібно цей рядок прописувати. Додав, і все відразу запрацювало на Windows 7.

Встановив Apache (httpd-2.2.20-win32-x86-no_ssl) під OC Windows 7, запускається, але Firefox не відчиняє стартову сторінку з: Its work! Пінг 127.0.0.1 localhost проходить, настройки NOD 32, Skype, файлу vhosts.conf, що пишуть в рекомендаціях, перевірені. В чому проблема? Допоможіть будь ласка!

після рядків "
LoadModule php5_module "c: /php5.2.17/php5apache2_2.dll"
PHPIniDir "c: /php5.2.17"
"

потрібно прописати щось типу "


AddType text / html .php
AddHandler application / x-httpd-php .php

Поправка (Теги потерла)

"Знак менше" IfModule php5_module "Знак більше"
"Знак менше" Location / "Знак більше"
AddType text / html .php
AddHandler application / x-httpd-php .php
"Знак менше" / Location "Знак більше"
"Знак менше" / IfModule "Знак більше"

На комп'ютері Apache (httpd-2.0.64-win32-x86-no_ssl.msi) працює. Після установки PHP - php-5.2.17-Win32-VC6-x86.zip все працює. Але після вставки в httpd.conf:
LoadModule php5_module "c: /php/php5apache2_2.dll"
PHPIniDir "c: / php"


помилку видає "Невдала запустити службу php5apache2_2.dll
і відповідно Apache не починається в чому може бути причина.
PS.здесь відповіді не знайшов!

To Alex
Вибачте що пізно, але може кому стане в нагоді. У параметрі директиви LoadModule потрібно вказувати dll, яка відповідає версії апача. Тобто у Вашому випадку це повинна бути php5apache2.dll

Схожі статті