Russian apache web-server

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

Якщо в директиві Listen в конфігураційному файлі вказано значення 80 (задається за замовчуванням) або будь-яке інше значення порту менше 1024, то для запуску Apache необхідно бути привілейованим користувачем, так як Apache доведеться підключатися до привілейованого порту. Після того, як сервер запустився і виконав ряд підготовчих операцій, таких як відкриття своїх log-файлів, він породжує кілька процесів нащадків. які і будуть виконувати всю роботу по обробці запитів від клієнтів. Основний процес httpd виконується з правами привілейованого користувача, в той час як процеси нащадки мають менший пріоритет. Все це контролюється МП-модулем. який компілюється разом з сервером.

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

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

/ Usr / local / apache2 / bin / apachectl -f /usr/local/apache2/conf/httpd.conf

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

Якщо під час запуску Apache відбудеться яка-небудь фатальна помилка, то перед тим, як завершити свою роботу, сервер пошле на консоль або в ErrorLog повідомлення, яке описує дану помилку. Найбільш поширеним повідомленням про помилку є "Unable to bind to Port.". Подібна помилка виникає в двох випадках:

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

Рішення багатьох подібних проблем можна знайти на сторінці FAQ.

Якщо ви хочете, щоб сервер запускався автоматично після перезавантаження системи, додайте виклик скрипта apachectl в системні файли, що відповідають за завантаження операційної середовища (зазвичай це rc.local або файли в каталозі rc.N). Це призведе до запуску Apache від імені привілейованого користувача. Щоб уникнути проблем з безпекою системи, переконайтеся, що сервер налаштований правильно.

Скрипт apachectl розроблений таким чином, що він може діяти як стандартний init-скрипт системи SysV; він може приймати аргументи start. restart. і stop і переводити їх у відповідні сигнали процесу httpd. Тому найчастіше вам досить зробити посилання на apachectl в запускной каталозі процесу init. Але перш ніж робити це, дізнайтеся точні вимоги вашої системи.

Додаткову інформацію по опціях командного рядка httpd і apachectl. а також інших допоміжних програм, ви можете знайти на сторінці "Сервер і допоміжні програми". Є також документація на всі модулі, що входять в дистрибутив Apache, і всі директиви, які вони надають.

Схожі статті