Починаємо грати в індіанців, Сервери, Інтернет-технології, статті

Фелікс Милованов, Linux RSP Web Site

Отже, перед Вами з тих чи інших причин постало завдання зробити WEB-сервер. Швидше за все, начальству набридло Ваше щоденне сидіння в Internet, і воно вирішило, що раз вже платить за користування мережею, то з цього треба спробувати отримати прибуток. Або Ви просто вирішили прославитися у всесвітній мережі, заробити купу грошей, купити останню модель Mersedes … так чи інакше – але WEB-сервер робити треба.

Перше, про що треба подбати (після того, як вирішені питання з орендою каналів у провайдера, закупівлі і установки операційної системи на комп’ютер, який буде використовуватися в якості WEB-сервера), це про саму програму WEB-сервера. Тобто тієї самої програми, яка буде приймати запити у WEB-броузерів Ваших клієнтів і відсилати їм з любов’ю підготовлені Вами WEB-сторінки, картинки, листівки, рекламки, значки і все, що Вам підкаже фантазія.

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

На сьогоднішній день автору відомі як мінімум три подібні WEB-сервера
: CERN, NCSA і Apache. Однак на сьогоднішній день сервер
CERN морально застарів і не розвивається, про
NCSA ходять такі чутки – тому для розгляду в даній статті вибраний сервер Apache, Що базується на ранній версії NCSA і по настоянці і функціональним можливостям сильно схожий з ним.

Ще одна проблема для творця російськомовного WEB-сайту – проблема російської кодування. На сьогоднішній день їх як-мінімум чотири: Koi-8,
CP-1251, ibm866 і iso8859-5. Можна, звичайно, весь сервер зберігати вряди – і крапка. Однак, на погляд автора, це неповага до користувачів програми Windows. Навпаки, сервер, видний тільки в CP-1251 буде недоступний користувачам відкритих систем. І саме Apache допоможе Вам у вирішенні цієї проблеми.

Ініціативна група під керівництвом Дмитра Крюкова взяла одну з ранніх версій Apache, І користуючись можливістю включення в код сервера зовнішніх модулів, почала розробку так званого
RussianApache, Що дозволяє розробнику WEB-сайту не піклуватися про кодування, а зосередитися на розробці вмісту сайту, переклавши турботу про кодуваннях на Вас (як на адміністратора WEB-сервера ). І, наголошую, RussianApache Вам в цьому дуже сильно допоможе.

Де взяти?

Отже, Вам потрібен WEB-сервер, причому саме RussianApache. Найпростіший спосіб його дістати – відкрити будь-який WEB-броузер або скориставшись програмою ftp зайти за адресою ftp://apache.lexa.ru/pub/apache-rus і взяти останню версію WEB-сервера (на момент написання статті це 1.2.5rusPL21.4, файл ‘apache_1.2.5rusPL21.4.tar.gz
).

Далі необхідно визначитися, в якій директорії буде знаходитися програмне забезпечення сервера. Група розробників Apache вважає, що це буде /usr/local/etc/httpd, автор воліє /usr/httpd (Щоб далеко не лазити). Обидва цих рішення абсолютно ідентичні з точки зору функціонування Apache, Тому, щоб не загострювати на цьому уваги, опишемо змінну оточення

www% setenv HTTP_HOME /usr/httpd

і надалі будемо користуватися цієї змінної для іменування файлів
Apache.

Тепер потрібно зібрати Apache. У вас в ${HTTP_HOME} лежить файл apache_1.2.4rusPL21.3.tar.gz, представляє собою останню версію сервера. Перейдемо в директорію /tmp і дамо команду:

www% gzip -c -d ${HTTP_HOME}/apache_1.2.5rusPL21.4.tar.gz
| tar xvf -

Якщо у Вас в системі все налаштоване правильно, то у Ви побачите купу файлів, які розгорнуться в директорії apache_1.2.5rusPL21.4.

Зайдіть в директорію apache_1.2.5rusPL21.4/src і відредагуйте файл httpd.h : Знайдіть в ньому рядок

#define HTTPD_ROOT "/usr/local/etc/httpd"

і замініть цей шлях, де буде стояти Ваш Apache (Наприклад, /usr/httpd ).

Після цього необхідно застосувати стандартну процедуру складання вільно-поширюваних програм. Для цього в поточній директорії ( apache_1.2.5rusPL21.4/src ) Дайте послідовність команд:

www% ./Configure

www% make

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

В результаті вищеописаних дій Вам потрібно вийти виконуваний файл, що називається httpd. Це і є
Apache, Який Ви так довго збирали. Але розслаблятися рано – Apache, Як і всяка нетривіальна програма (а тривіальної програмою можна вважати програму, обчислює 2 плюс 2) для своєї роботи вимагає настройки.

Але, перш ніж приступати до настройки, скопіюємо Apache в його робочу директорію:

www% cp httpd ${HTTP_HOME}

www% cd ..

www% cp -r LICENSE README conf htdocs icons
support ${HTTP_HOME}
.

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

Отже, згадаємо, що ж у нас є на даний момент:

  1. Певна мінлива оточення HTTP_HOME;
  2. файл ${HTTP_HOME}/httpd, Що представляє собою зібраний Apache;
  3. директорія ${HTTP_HOME}/conf/, В якої лежатимуть файли конфігурації;

цього набору достатньо для успішної роботи Apache. Створіть ще директорію ${HTTP_HOME}/logs для лог-файлів Apache – І в дорогу.

Перший файл, який потрібен для роботи Apache
${HTTP_HOME}/conf/httpd.conf. В поставку входить приклад такого файлу ( ${HTTP_HOME}/conf/httpd.conf-dist ), Але для того, щоб добре навчитися налаштовувати Apache, ми створимо його самі.

Отже, створіть цей файл і завантажте його в будь-редактор (автор використовує
textedit, Але Ви можете скористатися будь-яким іншим, включаючи vi ). Перше, що потрібно визначити, це режим роботи Apache.

Здавна повелося, що багато UNIX-сервіси запускалися спеціальним демоном, який називають суперсервером Internet ( inetd ). Це демон слухав порти відповідних сервісів, і при запиті певного типу сервісу (наприклад, telnet або
ftp ) Запускав програму-демона, визначену для цього сервісу. Зроблено це було в ті часи, коли пам’яті в комп’ютерах було мало – і щоб не тримати в пам’яті безліч складних демонів, мережа слухав досить простий inetd.

Apache теж є одним із сервісів Internet, і, в принципі, може пускатися під управлінням inetd. Проте такий механізм роботи не рекомендується для використання навіть розробниками
Apache. Причина в тому, що при старті Apache повинен прочитати кілька конфігураційних файлів – що позначається не кращим чином на його продуктивності. Крім того, час необхідно і на запуск програми …. .

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

ServerType standalone

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

Port 80

Вважається, що всі стандартні сервіси UNIX мають номери портів менші 1024. Тому порти з номерами меншими 1024 називають привілейованими портами, І відкривати їх дозволено тільки суперкористувачеві. Зроблено це для того, щоб програма зловмисника не змогла замаскуватися під стандартний сервіс. Тому, задавши для Apache
80
-Й порт, тим самим Ви зобов’язали себе запускати його з-під суперпользоваетлся. Однак для нормального функціонування Apache зовсім не потрібні привілеї суперпользвотеля. Більш того, такий режим функціонування є досить небезпечним для системи, на якій працює Apache.

Привілеї суперкористувача потрібні Apache тільки при старті – щоб відкрити 80-Й порт – а далі він може функціонувати під ім’ям іншого користувача. Ми радимо Вам завести для нього спеціального користувача http, входить до групи http і максимально зменшити права цього користувача в системі. В ідеалі, цей користувач повинен мати доступ тільки до тих директорій, які Ви хочете зробити видимими через Ваш WEB-сервер. Створивши користувача, додамо в httpd.conf строчки:

User http

Group http

зобов’язавши тим самим Apache працювати від імені цього безправного користувача.

Далі треба задати ім’я сервера, на яке буде відгукуватися Вас сервер. Робиться це директивою

ServerName www.your-domain.ru

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

DocumentRoot /usr/httpd/htdocs

(Тут передбачається, що всі Ваші документи знаходяться в директорії
/usr/httpd/htdocs. Ми так-же рекомендуємо задати імеено цю директорію, якщо у Вас ще немає жодних документів – у /usr/httpd/htdocs знаходиться стандартне керівництво в HTML-форматі, що поставляється з дистрибутивом
Apache ).

В принципі, цього було б достатньо, якби не одна тонкість. Розробники
Apache, Розуміючи, що при існуючих порядку 150-ти директивах вказівку їх в одному файлі зробило б його погано-читаним, вирішили спростити життя користувачам. Вони припускають, використання третіми файлів: httpd.conf (Загальні директиви конфігурації сервера), srm.conf (Конфігурація ресурсів сервера – інформація про те, де розташовані документи, як їх обробляти і подібна інформація) і access.conf (Конфігурація доступу до сервера – паролі, права на певні директорії ) – Проте при запуску Apache визначає тільки положення файлу httpd.conf. По-замовчуванню, це ${HTTP_HOME}/conf/httpd.conf, є можливість перевизначення розташування цього файлу. А ось розташування інших 2-х файлів Apache шукає в httpd.conf. Але так як в нашій конфігурації ці файли не потрібні (ми всю роботу Apache опишемо в httpd.conf, То ми просто відключимо інші файли:

AccessConfig /dev/null

ResourceConfig /dev/null

Все, у нас вийшов працює WEB-сервер! Запускаємо (у цьому місці необхідно скористатися правами користувача root:

www# /usr/httpd/httpd

www#

У Вас вийшов працює WEB-сервер! Можете запустити Netscape і набрати в ньому адресу сервера http://www.your-domain.ru – і Ви побачите свої документи.

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*