Як локально налаштувати сервер Apache?

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

Дана стаття передбачає наявність встановленого Аpache сервера, починаючи з версії 1.3.14 (пакет включає в себе Apache, PHP, perl, MySQL – PHPTriad можна безкоштовно і легально завантажити тут, тут або тут), оперціонной системи Windows 95/98/NT/XP . На більш ранніх версіях Apache, а так само на ОС Windows Vista не тестувалося, у автора первинної статті коментарів з цього приводу немає. Якщо комп'ютер введений в домен можуть виникнути проблеми з winMySQLAdmin входить в пакет PHPTriad.

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

На цьому етапі потрібно визначитися з директорією, в якій зберігатимуться сайти. За замовчуванням Apache використовує для цього C: \ Program Files \ Apache Group \ Apache \ htdocs, де відразу після установки можна знайти документацію по серверу. Для серйозних цілей вона не дуже підходить – надто вже довге ім'я, тому рекомендується зробити для всіх сайтів окремий диск (наприклад, з ім'ям Z :).

На диску Z: необхідно створити директорію home, а в ній – каталог localhost. У ньому буде зберігатися вміст головного хоста Apache – того, який доступний за адресою http://localhost. В каталозі localhost створіть директорії cgi і www. У першій будуть зберігатися CGI-скрипти, а в другій – документи і програми на PHP. Зауважу, що подібну операцію потрібно буде проробляти кожного разу при створенні нового віртуального хоста.

Відкрийте в Блокноті файл конфігурації httpd.conf, який розташований в піддиректорії conf директорії Apache. Встановіть поле ServerName наступним чином:

ServerName localhost

Тільки не забудьте розкоментувати поле ServerName, тобто прибрати символ "#" перед цим параметром (за замовчуванням він закоментований)! Взагалі, все, що йде після цього символу і до кінця рядка, Apache ігнорує.

У полі DocumentRoot вкажіть ту директорію, в якій будуть зберігатися ваші html-файли. Ми раніше домовилися, що це буде Z: \ home \ localhost \ www):

DocumentRoot "z :/ home / localhost / www"

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

Options Indexes Includes
AllowOverride All
Allow from all

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

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

Встановіть DirectoryIndex так:

DirectoryIndex index.htm index.html

Це – так звані файли індексу, які автоматично видаються сервером при зверненні до будь-якої директорії, якщо не вказано ім'я html-документа. В принципі, можна додати сюди й інші імена, наприклад, index.php, і т.д. Однак додаткові настройки все ж краще робити в файлах .htaccess для кожного сайту окремо.
Знайдіть і виправте такий параметр:

ScriptAlias / cgi-bin / "z :/ home / localhost / cgi /"

Додайте після нього ще таку строчку:

ScriptAlias / cgi / "z :/ home / localhost / cgi /"

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

Тепер слід знайти блок параметрів, що починається з і закінчується. Це – установки для CGI-директорії. Так як вказувати ніяких додаткових параметрів взамін тих, які вже встановлені за замовчуванням не потрібно, цей блок потрібно видалити.

Знайдіть і налаштуйте (не забудьте розкоментувати!) Наступний параметр:

AddHandler cgi-script. Bat. Exe. Cgi

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

AddType text / html. Shtml
AddHandler server-parsed. Shtml. Html. Htm

Тестування Apache

Для запуску сервера натисніть Пуск, потім Програми, Apache Web Server, Management і Start Apache, при цьому з'явиться вікно, дуже схоже на Сеанс MS-DOS, і нічого більше не станеться. Не закривайте його і не чіпайте до кінця роботи з Apache.

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

Запустіть Сеанс MS-DOS. Для цього натисніть Пуск, потім Виконати. Наберіть в діалозі command і натисніть . З'явиться підказка командного рядка. (Якщо немає можливості запустити Сеанс MS-DOS, скористайтеся яким-небудь іншим засобом. Наприклад, запустіть Far і працюйте через нього. Перегляд результатів роботи програми – +.)

Наберіть наступні команди DOS:

c:
cd "\ Program Files \ Apache Group \ Apache"
apache.exe

Якщо до цього Apache не запускався, то отримаєте повідомлення про помилку і номер рядка в httpd.conf, де вона відбулася. Виправте httpd.conf і повторіть описаний процес спочатку, до тих пір, поки у вікні не відобразиться щось подібне "Apache / 1.3. 14 (Win32) running …"

Перевірка html

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

http://localhost/index.html

або просто

http://localhost/

Повинен завантажитися створений файл.

Перевірка SSI

В директорії z :/ home / localhost / www з html-документами Apache створіть файл test.shtml c таким змістом (уважно стежте за дотриманням прогалин у директиві include!):

SSI Test!

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

http://localhost/test.shtml

Повинен завантажитися файл, який складається з тексту "SSI Test!", За яким слідує вміст файлу index.html між двома горизонтальними рисами. Якщо цього не відбулося, значить, неправильно налаштована робота SSI.

Перевірка CGI

В директорії z :/ home / localhost / cgi для CGI-скриптів створіть файл test.bat з таким змістом:

@ Echo off
echo Content-type: text / html
echo.
echo.
dir

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

http://localhost/cgi/test.bat

У вікні відобразиться результат команди DOS dir.

Віртуальні хости Apache

Існує два види віртуальних хостів: окремі для кожного ip-адреси або ж використовують один загальний ip-адресу (так звані name-based хости – хости, які визначаються по імені). У тренувальних цілях розглянемо обидва варіанти, а саме, створимо хост hacker, використовує ту ж адресу, що й localhost, а також хост cracker з адресою 127.0.0.2.

Сервер hacker буде зберігатися в директорії z :/ home / hacker, яку необхідно створити прямо зараз (звичайно, разом з її піддиректоріями cgi і www), А хост cracker – в директорії z :/ home / cracker. У цих директоріях будуть знаходитися:

  • файли access.log з журналом доступу до віртуального серверу;
  • файли errors.log з журналом помилок сервера;
  • директорія www, де, як звичайно, будуть зберігатися html-документи;
  • директорія cgi для зберігання CGI-програм.

Для установки віртуальних хостів необхідно зробити деякі зміни у файлі конфігурації Apache httpd.conf (Див. вище), а також в деяких файлах Windows.

Відкрийте файл httpd.conf (Можете для цього скористатися ярликом Edit configuration в меню Пуск – Програми - Apache Web Server - Management). Перейдіть в його кінець, Вам належить додати туди кілька рядків. Додайте наступні рядки в кінці файлу після всіх коментарів:

NameVirtualHost 127.0.0.1
# —- Localhost

ServerAdmin webmaster @ localhost
ServerName localhost
DocumentRoot "z :/ home / localhost / www"
ScriptAlias / cgi / "z :/ home / localhost / cgi /"
ErrorLog z :/ home / localhost / error.log
CustomLog z :/ home / localhost / access.log common

# —- Hacker

ServerAdmin webmaster@hacker.ru
ServerName hacker
DocumentRoot "z :/ home / hacker / www"
ScriptAlias / cgi / "z :/ home / hacker / cgi /"
ErrorLog z :/ home / hacker / error.log
CustomLog z :/ home / hacker / access.log common

# —- Cracker

ServerAdmin webmaster@cracker.ru
ServerName cracker
DocumentRoot "z :/ home / cracker / www"
ScriptAlias / cgi / "z :/ home / cracker / cgi /"
ErrorLog z :/ home / cracker / error.log
CustomLog z :/ home / cracker / access.log common

Відкрийте системний фаил hosts, який знаходиться в директорії C: \ WINNT \ SYSTEM32 \ DRIVERS \ etc.

У ньому має бути 1 розкоментувати рядок:

127.0.0.1 localhost

Замініть її на:

127.0.0.1 localhost hacker
127.0.0.2 cracker

Зверніть увагу на те, що хост hacker описаний на тому ж рядку, що й localhost. Справа в тому, що у файлі hosts повинні вказуватися тільки унікальні ip-адреси. Якщо ж однією адресою зіставляється відразу декілька хостів, то один з них (той, який іде першим) оголошується головним, а інші – його синонімами. У нашому випадку localhost – головний, а hacker – його синонім. Apache при отриманні запиту на адресу 127.0.0.1 дізнається, що він прийшов хосту з ім'ям hacker, і активізує відповідний блок .

Налаштування Apache для роботи з PHP

Відкрийте в Блокноті файл конфігурації Apachehttpd.conf.

Знайдіть у ньому таку закоментувати рядок:

# AddType application / x-httpd-php php

Розкоментуйте її:

AddType application / x-httpd-php php

Відразу ж після цього рядка додайте такі налаштування:

ScriptAlias / _php / "C :/ Program Files/PHP4 /"
Action application / x-httpd-php "/ _php / php.exe"

Тестування PHP

Створимо у директорії z :/ home / localhost / www файл test.php з наступним змістом:

echo "It works!
\ N ";
phpinfo ();
?>

Тепер наберіть в браузері: http://localhost/test.php. Повинна відобразитися сторінка з різноманітною інформацією про PHP, яка генерується функцією phpinfo ().

Установка Perl

Знайдіть у файлі конфігурації Apache httpd.conf рядок

AddHandler cgi-script. Bat. Exe

Замініть її на

AddHandler cgi-script. Bat. Exe. Pl. Cgi

Знайдіть і розкоментуйте параметр:

ScriptInterpreterSource registry

Перевірка працездатності Perl

Створіть у директорії z: \ localhost \ cgi файл test.pl з таким змістом:

#! / Usr / local / bin / perl-w
print "Content-type: text / html \ n \ n";
print "It works!
\ N ";

Важливо! Зверніть увагу на першу сходинку в скрипті. Можна подумати, що вона вказує Apache, що Perl розташований в z: \ usr \ local \ bin \ perl.exe. Насправді ж Apache бачить, що такого файлу не існує, і використовує Реєстр для пошуку асоціації для розширення pl. Відбувається це завдяки директиві ScriptInterpreterSource. Однак, хоча Apache ігнорує перший рядок в скрипті, Perl її використовує для того, щоб визначити, які прапори були використані при його запуску.

Тестування MySQL

Створіть такий PHP-скрипт з ім'ям mysql.php в директоріїz: \ home \ localhost \ www.

define ("DBName", "test");
define ("HostName", "localhost");
define ("UserName", "root");
define ("Password", "");
if (! mysql_connect (HostName, UserName, Password))
{Echo "Не можу з'єднатися з базою". DBName. "!
";
echo mysql_error ();
exit;
}
mysql_select_db (DBName);
/ / Створюємо таблицю t. Якщо така таблиця вже є,
/ / Повідомлення про помилку буде придушене, тому
/ / Використовується "@"
@ Mysql_query ("create table t (id int, a text)");
/ / Вставляємо в таблицю 10 записів
for ($ i = 0; $ i<10; $i++)
{$ Id = time ();
mysql_query ("insert into t (id, a) values ($ id, 'Стор $ i!')");
}
/ / Виводимо всі записи
$ R = mysql_query ("select * from t");
for ($ i = 0; $ i{$ F = mysql_fetch_array ($ r);
echo "$ f [id] -> $ f [a]
\ N ";
}
?>

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

http://localhost/mysql.php

Якщо все встановилося правильно, повинні отримати кілька рядків виводу без повідомлень про помилки. При кожному запуску в таблицю t додаються нові рядки, так що з кожним натисканням кнопки Оновити в браузері обсяг виведення буде все збільшуватися.

Звертаю увагу на константи DBName, HostName, UserName і Password. DBName повинен містити ім'я бази даних (у нашому випадку це test, база даних, яка створюється MySQL за замовчуванням). HostName – завжди localhost, адже ми працюємо на локальному комп'ютері. У визначенні UserName найпростіше підставляти root, який є власником усіх таблиць. При установці MySQL користувачеві root не призначається пароль, так що константа Password дорівнює порожній рядку.

Джерела:

  • Apache + Perl + PHP3 + MySQL для Windows 95/98: керівництво по установці на сайті citforum.ru, автор статті Дмитро котерій
  • Установка web-сервера Apache в зв'язці з PHP 5 і MySQL на сайті www.softtime.ru, автори Сімдянов І.В., Голишев С.В., Кузнецов М.В.
  • Встановлення та налаштування Apache сервера на сайті www.internet-technologies.ru

Category: Інтернет

Comments (Прокоментуй!)

There are no comments yet. Why not be the first to speak your mind.

Leave a Reply