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

  • Скачайте Web-сервер Apache
  • Виберіть Web-сервер Apache
  • Налаштуйте файлу конфігурації Apache mime.types
  • Налаштуйте файлу httpd.conf
  • Перевірте Web-сервера
  • Перевірте виконання CGI-програми
  • 1. Скачайте Web-сервер Apache

    Сервер Apache ви можете завантажити з сайту компанії за адресою http://www.apache.org. Клацніть на посиланні з ім’ям download і виберіть саму повую версія сервера для платформи Win32. Ім’я файлу буде швидше за все зразок apache_1_3_9_win32.exe.

    2. Виберіть Web-сервер Apache

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

    Рекомендуємо встановити сервер так (шість кроків):

  • Визначтеся з директорією, в яку Ви будете встановлювати Apache. Всі подальші міркування ґрунтуються на тому, що Ви вибрали для цієї мети такий каталог: f:usrlocalapache Якщо диску F: у Вас немає, або якщо Ви не хочете захаращувати його, радимо зробити одне з трьох:
  • Створіть диск F: з допомогою якої-небудь програми для віртуальних розділів (наприклад, за допомогою вбудованої в Windows 95/98 програми DriveSpace). Це найкраще рішення, і з точки зору економії пам’яті, і з точки зору швидкодії. Адже що таке Web-сайт, як не набір дуже невеликих файлів? А DriveSpace якраз і оптимізує роботу з такими файлами.
  • Зробіть віртуальний диск F:. Для цього створіть де-небудь на будь-якому диску директорію, яка в майбутньому буде кореневої для диску F:. Припустимо, Ви вибрали C:INTERNET. Далі, на початку файлу c:autoexec.bat пропишіть такий рядок:
    subst f: C:INTERNET

    і перезавантажте комп’ютер. У вас повинен з’явитися віртуальний порожній диск F:.

    УВАГА: є відомості, що в Windows 95/98 є помилка, в результаті якої іноді subst-шляху «самі по собі» перетворюються в абсолютні. Тобто, наприклад, в розглянутому вище прикладі команди

    f:
    cd
    cd
    dir

    (а точніше, команда dir у своєму заголовку) помилково виведуть, що поточна директорія C: (а не F:, як це повинно бути). Зазначена помилка найчастіше проявляється непрацездатності Perl-транслятора. Так що особисто ми не рекомендуємо Вам використовувати subst. Замість цього скористайтесь пунктом 1.

  • Нарешті, Ви можете всього цього не робити і поставити Apache на будь-який інший диск, тільки тоді Вам доведеться трохи важче при виконанні всіх інших дій. Треба буде все вказуються шляхи замінювати на Ваші власні, а це вкрай неприємно. Ще раз настійно рекомендуємо скористатися диском F:.
  • Рекомендуємо все ж розмістити Apache у зазначеному на початку каталозі, так як він максимально відповідає каталогу для реального Web-сервера Інтернету. Адже чим ближче в плані конфігурації ми будемо до такого сервера, тим краще і ефективніше зможемо працювати.

  • Запустіть тільки що завантажений файл. У діалоговому вікні натисніть кнопку Yes, а потім — кнопку Next.
  • Тепер натисніть Browse. Вручну виберіть директорію для установки: f:usrlocalapache і натисніть кнопку OK.
  • Виберіть тип установки — Сustom і приберіть прапорець Source Code (якщо, звичайно, не хочете подивитися вихідні тексти Apache). Цим Ви заощадите собі 3 Мбайт.
  • Натисніть Next і почекайте, поки будуть копіюватися файли Apache.
  • На запит про перезавантаження комп’ютера відповідайте «Перезавантажити».
  • Вітаємо — Apache встановлений! Тепер найнеприємніше — його параметри.

    3. Налаштуйте файлу конфігурації Apache mime.types

  • Відкрийте директорію f:usrlocalapacheconf. Відкрийте знаходиться там файл mime.types.
  • Знайдіть у ньому таку строчку:
    text/html html, htm

    Змініть її на

    text/html html, htm shtml shtm sht

    Слід зауважити, що якщо Ви з якихось причин не хочете псувати файл mime.types, то можна замість цього прописати у файлі httpd.conf (див. нижче) рядки виду

    AddType text/html html, htm shtml shtm sht

  • 4. Налаштуйте файлу httpd.conf

    Увага! Це — найвідповідальніший момент установки. Просимо дотримуватися інструкції БУКВАЛЬНО.

  • Відкрийте директорію f:usrlocalapacheconf Відкрийте знаходиться там файл httpd.conf. Це — єдиний файл, який Вам залишилося налаштувати. Вам належить знайти і змінити в ньому деякі рядки, а саме ті, про яких згадується далі. Щоб уникнути непорозумінь не чіпайте все інше. Слід зауважити, що в ньому кожен параметр супроводжується кількома рядками коментарів, розібратися в яких з першого разу досить важко. Тому не звертайте на них увагу.
  • У полі ServerAdmin вкажіть Ваш E-mail адресу, який буде відображатися в повідомленнях про помилку сервера. Наприклад:
    ServerAdmin [email protected]
  • У полі ServerName напишіть будь-яке слово — на роботі це не позначається, наприклад:
    ServerName ApacheServer

    Тільки не забудьте розкоментувати поле ServerName, тобто прибрати символ «#» перед цим параметром (за замовчуванням він закомментирован)!

  • У полі DocumentRoot вкажіть ту директорію, в якій будуть зберігатися Ваші html-файли, наприклад:
    DocumentRoot f:/www

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

  • Знайдіть блок, що починається рядком і закінчується (взагалі, такі блоки позначають установки для заданій директорії і всіх її піддиректорій). Його потрібно змінити на:
    Options Indexes Includes
    AllowOverride All

    Таким чином, в цьому блоці будуть зберігатися установки для всіх директорій за замовчуванням (т. к. це — коренева директорія).

  • Знайдіть аналогічний блок, який починається і закінчується . Там буде багато коментарів, не звертайте на них увагу. Цей блок слід замінити на:
    Options Indexes Includes
    AllowOverride All
    Order allow,deny
    Allow from all

    Це — установки для директорії з Вашими html-документами. Якщо хочете, можете встановити іншу директорію, головне, щоб вона збігалася з тією, яка прописана в параметрі DocumentRoot

  • Йдемо далі. Встановіть UserDir, наприклад так:
    UserDir f:/home

    Це буде директорія, в якій зберігалися б домашні сторінки користувачів, якщо б це був справжній Web-сервер, а також кореневі каталоги віртуальних хостів (див. нижче). Не забудьте також створити цей каталог.

  • Встановіть DirectoryIndex так:
    DirectoryIndex index.htm index.html

    Це — так звані файли індексу, які автоматично видаються сервером при зверненні до директорії, якщо не зазначено ім’я html-документа. В принципі, можна додати сюди і інші імена, наприклад, index.phtml, якщо Ви будете працювати з PHP і т. д.

  • Знайдіть і пропишіть такий параметр:
    ScriptAlias /cgi-bin/ «f:/cgi-bin/»

    Так, саме так, з двома слэшами. Це буде та директорія, в якій повинні зберігатися Ваші CGI-скрипти. Якщо хочете, можете вказати інше ім’я, наприклад:

    ScriptAlias /mycgi/ «f:/mycgidir/»

    Подібний параметр говорить Apache про те, що, якщо буде вказано шлях виду http://localhost/cgi-bin, то насправді слід звернутися до директорії f:/cgi-bin.

  • Тепер слід знайти і налаштувати блок параметрів, що починається з і закінчується . Це — установки для Вашої CGI-директорії (якщо Ви встановили для неї інше ім’я на попередньому кроці, відповідно модифікуйте шлях). Там повинно бути:
    AllowOverride All
    Options ExecCGI
  • Налаштуйте наступний параметр:
    AddHandler cgi-script .bat .exe

    Це говорить Apache про те, що файли з розширенням .exe і .bat потрібно розглядати як CGI-скрипти.

  • І останнє — встановіть:
    AddHandler server-parsed .shtml .shtm .sht

    Або, якщо Ви хочете, щоб і звичайні файли html оброблялися SSI, напишіть так:

    AddHandler server-parsed .shtml .shtm .sht .html .htm

  • Вітаємо — Ви налаштували Apache, і він повинен працювати! Для запуску сервера натисніть Пуск->Програми->Apache Web Server->Start Apache as console app, при цьому з’явиться вікно, дуже схоже на Сеанс MS-DOS, і нічого більше не станеться. Не закривайте його і не чіпайте до кінця роботи з Apache.

    Кілька слів про те, як можна спростити запуск і завершення сервера. У Windows можна призначити кожному ярлику функціональну комбінацію клавіш, натиснувши на які, Ви запустите цей ярлик. Так що клацніть правою кнопкою на панелі завдань, у контекстному меню виберіть Властивості, потім Налаштування меню і кнопку Додатково. У вікні Провідника призначте ярлику Start Apache as console app комбінацію Ctrl+Alt+A, а ярлику Shutdown Apache as console app — Ctrl+Alt+S

    5. Перевірте Web-сервера

    • Перевірка html: у директорії f:/www з html-документами Apache створіть файл index.html. Тепер запустіть браузер і наберіть:
      http://localhost/index.html

      або просто

      http://localhost/

      Завантажиться Ваш файл.

    • Перевірка CGI: в директорії f:/cgi-bin для CGI-скриптів створіть файл test.bat з таким змістом:
      @echo off
      echo Content-type: text/html
      echo.
      echo.
      dir

      Тепер у браузері наберіть:

      http://localhost/cgi-bin/test.bat

      У вікні відобразиться результат команди DOS dir. (Хотілося б відзначити, що зазначений тест працює не на всіх версіях Windows: іноді замість того, щоб виконати файл test.php, Apache виводить в браузер його вміст. З чим це пов’язано — не зовсім ясно, однак, здається, можна позбутися від зазначеної помилки шляхом маніпулювання з Реєстром. Якщо у Вас test.bat не запускається, не турбуйтеся: навряд чи Ви коли-небудь будете писати скрипти у вигляді bat-файлів, тим більше, що це несумісно з Unix.)

    • Перевірка SSI: аналогічна перевірці html. Використовуйте, наприклад, директиву

    Якщо bat-файли Ваш Apache запускати не хоче (див. вище), то дочекайтеся установки Perl або PHP.

    6. Перевірте виконання CGI-програми

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

    Нижче ви бачите текст простий перевірочної програми на мові Perl.

    #!/usr/local/bin/perl
    use CGI;
    $query = new CGI;
    print $query->header;
    print «Проверкап»;
    print «Перевірка пройшла успішно.»;

    Скопіюйте текст цієї програми Блокнот, збережіть його у файлі test.pl і помістіть файл в каталог cgi-bin кореневого каталогу вашого сервера. Перший рядок у цій програмі треба змінити так, щоб вона відображала дійсний стан интерпритатора Perl на вашому комп’ютері.

    Примітка: Перший рядок важлива при роботі під управлінням UNIX, так як саме в ній вказується, яка програма повинна обробляти цей текст. Версія Apache для Windows теж дотримується цієї угоди.

    Тепер можете перевірити виконання цієї програми, набравши в адресному рядку броузера наступне:

    http://localhost/cgi-bin/test.pl

    Якщо все працює правильно, ви повинні побачити у вікні броузера сторінку HTML-код якої зазначений в операторах print. Результат виконання цієї програми ви можете побачити натиснувши тут. Російський текст може бути відображений броузером неправильне кодування. Якщо це сталося, то у вікні вручну выставте кодування Кирилица (Windows). Як встановлювати кодування HTML-сторінки повертається CGI-програмою, щоб броузер її завжди вірно відображав, буде розказано пізніше.

    Ця програма перевіряє правильність установки компонентів для CGI-програмування. Зокрема, при виконанні цієї програми перевіряється наступне.

    • Web-сервер налаштований і налаштований правильно і може виконувати CGI-програми.
    • Програма поміщена у відповідний каталог, сервер розпізнає файли в цьому каталозі програми.
    • Інтерпретатор Perl встановлений і працює правильно; шлях до програми интерпритатора правильно вказаний в першому рядку.
    • Бібліотеки, які входять в комплект поставки Perl, встановлені правильно, зокрема CGI.pm.

    При написанні статті використовувалися матеріалу сайту http://www.dklab.ru.