Установка і настройка web - сервера apache, бази даних mysql і інтерпретаторів мов php і perl

Частина 1. Встановлення.

1.1 Установка Apache

Apache 1.3.xx Win32 Binary (Self extracting)

Я буду все розповідати на прикладі Apache версії 1.3.33. Він досить стабільний і проблем з його установкою і налаштуванням не виникало. Хоча Ви зможете завантажити свежачок з сайту. ВКРАЙ НЕ РЕКОМЕНДУЮ ставити Apache 2. Так як зв'язка Apache 2 + php є скоріше експериментальної і з її установкою і налаштуванням проблем виникає набагато більше (особливо, коли ще підключається MySQL).

Ще хочу розвіяти одна помилка - Apache 2 - це не нова версія Apache 1.3, а проект, який розробляється паралельно з Apache 1.3. Сам Apache 1.3 продовжує розвиватися незалежно від 2 версії.

1.1.1 Отже, Ви завантажили Apache. Назва файлу виглядає приблизно як apache_1.3.33-win32-x86-no_src.exe. Відкривайте цей файл. Біжать літери, циферки і в результаті Ви бачите наступне вікно:

Значить, Ви завантажили те, що потрібно і зараз почнеться інсталяція: Тисніть Next.

1.1.2 З'явиться вікно з ліцензійною угодою. Виберіть пункт I accept the terms in the license agreement і натисніть Next.

1.1.3 У наступному вікні теж тисніть Next.

1.1.4 Тепер має з'явитися вікно:

Перше поле - назва домену. Припустимо, напишіть mysite.ru

Друге поле - назва сервера. Припустимо, www.mysite.ru

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

Нижче виберіть пункт Run as a service for Al Users.

1.1.5 У наступному вікні виберіть пункт Complete і натисніть Next.

1.1.6 Тепер Вас запитають, куди ставити Apache. Раджу, не мудруючи лукаво, ставити в папку за замовчуванням: C: \ Program Files \ Apache Group \

1.1.7 Вам напишуть, що все готово до установки. Натисніть Install, щоб її розпочати.

1.1.8 Якщо все пройшло успішно, по закінченню інсталяції Ви побачите вікно

Тисніть Finish. От і все! Ми встановили найкращий Веб - сервер в світі - Apache!

Але не розслабляйтеся, нам ще належить багато. Переходимо до наступного пункту:

1.2 Установка php

Не варто качати "PHP 5.x.x installer" - так як там відсутня велика кількість необхідних нам файли!

Далі розпаковуємо архів в C: \ php, хоча Ви можете розпакувати куди хочете, але в подальшому я буду описувати настройку, вважаючи, що він у Вас все - таки в C: \ php.

Ось і все, php ми встановили. Якщо захочете його стерти, то треба буде всього навсього видалити папку c: \ php, а не через Установку і видалення. Йдемо далі:

1.3 Установка perl

Тепер займемося установкою інтерпретатора іншого популярного мови для web - кодинга - Perl. Для Win32 нам потрібен не звичайний Перл, який спочатку створювався під * nix - системи, а вже скомпільована під Windows версія - Active Perl (хоча, якщо є бажання, то можете завантажити вихідні та скомпілювати самі Perl під Win32). Качаємо його з сайту www.activestate.com.

1.3.1 Отже, ми завантажили файл. Він виглядає приблизно, як ActivePerl-5.8.0.805-MSWin32-x86.msi - звичайний Win - інсталятор. Запускаємо і бачимо вікно:

1.3.2 З'явиться вікно з ліцензійною угодою. Виберіть пункт I accept the terms in the license agreement і натисніть Next.

1.3.3 Вибираємо, куди ставити Perl. Я раджу змінити ім'я директорії на C: \ usr.

Це слід зробити з наступних причин: якщо Ви тестируете скрипти на локальній машині, то напевно потім викладаєте на Web - сервер. А хороші сервера, як відомо, працюють під * nix - системами. На початку перл - скрипта Ви пишете шлях до інтерпретатора перла. Зазвичай на сервері він виглядає як

#! / Usr / bin / perl. А якщо на локальній машині Перл у Вас буде стояти в папці, скажімо, С: \ Perl, то перший рядок буде виглядати так #! / Perl, і після тестування скриптів і перед їх закачуванням на сервер, Вам доведеться міняти перший рядок у всіх Ваших скриптах.

1.3.4 У наступному вікні тиснемо Next (не треба ставити галочку).

1.3.5 У наступному вікні залишаємо галочки, де вони стоять і тиснемо Next

1.3.5 Має з'явитися вікно:

Тепер все готово до інсталяції, тиснемо Install.

1.3.6 Інсталяція завершена. Тиснемо Finish. Читаємо довідку і радіємо - ми вже встановили сам веб - сервер і інтерпретатори 2 найпопулярніших мов програмування в Інтернеті - PHP і Perl. Але на цьому установка не закінчилася.

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

1.4 Установка MySQL

У розділі Downloads. Вибирайте там найостаннішу версію під Windows і завантажуйте. Я буду розповідати на прикладі MySQL 4.1.9, хоча інсталяція новіших нічим не відрізняється від цієї. Дистрибутив являє собою zip - архів, який треба кудись - небудь розгорнути.

1.4.1 Тепер запускайте файл setup.exe. Має з'явитися віконце:

1.4.2 У наступному вікні вибираємо тип установки Custom. Тиснемо Next.

1.4.3 Клацаєте по кнопці Change і міняєте шлях на C: \ Program Files \ MySQL \

1.4.4 Все готово до установки, тиснемо Install.

1.4.5 З'явиться вікно:

Вибираємо нижній пункт і тиснемо Next.

1.4.6. У наступному віконці ставимо галочку і тиснемо Next.

1.4.7 З'явиться вікно Configuration Wizard

Ну що ж, будемо конфігурувати. Тиснемо Next.

1.4.8 Вибираємо Detailed Configuration і тиснемо Next.

1.4.9 Вибираємо Developer Machine і тиснемо Next.

1.4.10 Вибираємо Multifunctional Database і тиснемо Next.

1.4.11 З'явиться вікно:

Ми залишаємо все, як на малюнку і натискаємо на Next.

1.4.12 Вибираємо пункт Decision Support (DSS) / OLAP і знову тиснемо Next.

1.4.13 Ми залишаємо галочку Enable TCP / IP Networking, номер порту залишаємо 3306 і тиснемо на Next.

1.4.14 Вибираємо Standart Character Set і тиснемо Next.

1.4.15 Ставимо галку навпроти Install As Windows Service, ім'я залишаємо MySQL, а з Launch the MySQL Server automatically знімаємо. Хоча якщо хочете, то можете залишити, але вона буде постійно висіти в пам'яті і їсти ресурси (хоч і не великі, десь 9 мегабайт). Особисто я віддаю перевагу все запускати вручну, коли знадобиться.

1.4.16 Ставимо галку навпроти Modify Security Settings, пишемо пароль рута (так в * nix системах зветься адміністратор), потім підтверджуємо у другому полі і тиснемо Next.

1.4.17 Тепер тиснемо Execute

1.4.18 Тиснемо Finish.

Запускається і зупиняється сервер MySQL відповідно командами

1.5 Висновок до першої частини

Підіб'ємо підсумки: ми з вами встановили джентльментскій набір Web - майстри під Win - платформу.

  • Сам Web - server Apache
  • Інтерпретатори Perl і PHP
  • Базу даних MySQL

Тепер можете відпочити перед наступною частиною нашої з Вами роботи - налаштуванням всього вище перерахованого добра :)

Частина 2. Встановлення.

Ну що ж, ми всі успішно встановили, тепер нам потрібно зробити так, щоб це все один з одним працювало. Отже:

2.1 Налаштування роботи Apache

2.1 Налаштування роботи Apache

2.1.1 Насамперед шукаємо рядок

DocumentRoot "C: / Program Files / Apache Group / Apache / htdocs" і міняємо її на DocumentRoot "C: / www / html"

Зверніть увагу, що в дорозі замість стандартного для Win - систем зворотного слеша "" використовується прямий - "/". Це пояснюється тим, що Apache розроблявся спочатку під * nix - системи, а там скрізь замість "" використовується "/".

2.1.2 Тепер шукаємо рядок

і міняємо її на 2 наступні рядки:

2.1.2 Шукаємо секцію і замінюємо її вміст на наступне:

2.1.3 Шукаємо рядок

В результаті рядок приймає вигляд:

Тут ми вказуємо сервера, що файли з розширеннями .bat. exe. cgi треба розглядати як cgi - модулі

2.1.4 Шукаємо рядки

Тут ми вказуємо сервера, файли з якими р будуть оброблятися як SSI.

SSI (Server Side Include) - технологія, яка дозволяє включати в WEB - сторінку "зовнішні" файли (будь то інша html - сторінка або скрипт, що знаходиться в папці cgi). Таким чином можна будувати сайт як би по цеглинці.

2.1.5 Не забудьте зберегти зміни у файлі httpd.conf

Загальне налаштування Apache закінчена. Натисніть Пуск -> Виконати, введіть команду

2.2 Налаштування зв'язки Apache + PHP5

2.2.1 Копіювання файлу php5ts.dll з папки C: \ php в папку C: \ WINDOWS \ SYSTEM32

2.2.2 Копіювання файлу php.ini-dist з папки C: \ php в каталог C: \ WINDOWS і перейменуйте його в php.ini, відкрийте в блокноті, знайдіть змінні, зазначені нижче і встановіть їх значення, як написано нижче:

"Справа в тому, що в цілях безпеки, починаючи з версії 4.1, РНР налаштовується за замовчуванням так, щоб передані значення не призначалися змінним.

Отримати ж передане значення можна звернувшись до відповідного масиву.

Якщо передаємо методом GET, звернувшись до скрипту за посиланням виду

або відправивши форму, вказавши в ній method = "GET",

то всі змінні містяться в масиві $ _GET.

Якщо отримуємо дані з форми, відправленої методом POST, то все поля цієї форми містяться в масиві $ _POST. Припустимо, в формі був елемент

то в скрипті, який вказаний в action форми, можна написати echo $ _POST [ 'var']; і буде виведена 1.

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

Те ж стосується і серверних змінних, таких, як $ REMOTE_ADDR, $ PHP_SELF. Отримати їх можна, звернувшись до масивів $ _SERVER, $ _ENV або функцією getenv - getenv ( 'HTTP_REFERER');

Змінні, зареєстровані в сесії, слід шукати в масиві $ _SESSION.

Дані cookie містяться в масиві $ _COOKIE, відомості про закачані файлах - в $ _FILES

Змінні оточення - в $ _ENV, а так само, існує масив $ _REQUEST, в якому зібрані дані з GET, POST і cookie.

Важливо! Вельми в пошуках змінних допомагає одна з головних функцій PHP - phpinfo ()

За призначення змінних відповідає параметр register_globals в php.ini.

Якщо register_globals = on, то всі отримані скриптом дані будуть призначені відповідним змінним.

Розробники PHP настійно рекомендують вимикати register_globals (такий режим навіть введений за замовчуванням у всіх нових версіях) і користуватися даними, отриманими від користувача, тільки звертаючись до відповідно¿ масивів.

Це зроблено тому, що при register_globals = on легко зламати недбало написаний скрипт.

Огоромное кількість сайтів було зламано таким чином.

До того ж, register_globals = off змушує користуватися суперглобальнмі масивами ($ _GET, $ _POST і т.д.), що допомагає уникнути плутанини. ДУЖЕ багато людей, записавши певну змінну в сесію, а потім намагаючись змінити її значення, передаючи її скрипту методом GET, довго не могли зрозуміти, чому у них нічого не працює? Тому

дуже важливо при роботі з сесіями, при будь-яких настройках (і особливо - при register_globals = on!) працювати тільки з масивом $ _SESSION, як це описано у відповідному розділі.

Тобто, register_globals = off - насправді не мета, а засіб. Спонукальний мотив для програміста писати захищені скрипти і уникати плутанини.

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

Якщо ж немає можливості переробити готовий скрипт, але його треба змусити працювати при register_globals = off, то треба пам'ятати, що по-перше, ви робите потенційну діру у себе на сайті, а по-друге, для цього можна скористатися функціями extract і import_request_variables

АЛЕ: Бездумне використання цих функцій є таким же небезпечним!

Якщо ви хочете адаптувати старий скрипт під нові правила, то виконайте наведений код саме в такому порядку!

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

ВАЖЛИВО. Цей код повинен викликатися як можна раніше в скрипті. ДО будь-якого коду і присвоєння змінних.

Оскільки він являє собою дірку похлеще register_globals = on!

Адже якщо він буде викликатися після присвоєння змінних в скрипті, то хакер з легкістю перезапише їх.

Останні версії PHP повідомляють вам про це нотайсом при використанні import_request_variables.

І то правда - три роки минуло з тих пір, як введені нові правила. Пора б уже й навчитися писати скрипти правильно.

Але найкраще користуватися не звалені в купу змінними, а відповідними масивами. Особливо, якщо в одному скрипті зустрічаються змінні з кук, з форми, з сесії - дуже багато плутанини від цього відбувається.

2.2.3 Настроїмо PHP двома способами: як модуль Апача і як CGI - бінарник

2.2.3.1 Налаштування PHP, як модуля Apache:

У файл конфігурації Apache httpd.conf додаємо:

(Хоча може бути і LoadModule php5_module C: /php/sapi/php5apache.dll. Залежить від Вашої версії PHP. У мене 5.0.3 і цей файл лежить, як у першому випадку)

Після останньої директиви AddModule додаємо рядок

усередині блоку додаємо рядок

У рядку DirectoryIndex треба прописати ще index.php:

2.2.3.2 Налаштування PHP, як CGI - бінарники:

У файл конфігурації Apache httpd.conf додаємо:

усередині блоку додаємо рядок:

Відразу після неї додаємо 2 рядки:

Якщо у Вас стоїть четверта версія PHP, то замість останнього рядка треба написати:

У рядку DirectoryIndex треба прописати ще index.php:

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

2.2.4 Ось і все! Ми вже налаштували Apache і PHP. Тепер перевіримо роботу. Створіть файл index.php в папці C: \ www \ html, а в ньому напишіть наступні рядки:

2.3 Налаштування зв'язки Apache + Perl

В принципі, в розділі "Налаштування роботи Apache" ми вже все налаштували. Тепер залишається тільки перевірити роботу. Напишемо наступний простенький скрипт test-perl.cgi на Perl:

Якщо бачите напис "It works!", Значить дійсно It works;).

2.4 Налаштування роботи MySQL і PHP

2.4.1 З каталогу з: \ php скопіюйте в C: \ windows \ system32 файл libmysql.dll

2.4.3 Перевірте, щоб в php.ini рядок, із зазначенням розташування файлів - розширень виглядала так:

2.4.4 Працездатність зв'язки Apache + MySQL + PHP перевіримо наступним скриптом

Під "ваш_пароль" мається на увазі той пароль, який Ви вказали при установці MySQL (root password)

Якщо Ви побачили напис "Працює.", Значить нам з вами вдалося налаштувати роботу MySQL через PHP.

2.5 Налаштування роботи MySQL і Perl

Тут нам, в принципі, нічого налаштовувати не треба. Для доступу до бази будемо використовувати модуль DBI. Для перевірки роботи Perl з MySQL напишемо скрипт mysql_test_perl.cgi:

Хочу Вам нагадати, що після зміни будь-яких конфігураційних файлів, треба перезапускати Apache:

2.6 Висновок до другої частини:

Ну ось Ви і навчилися встановлювати і налаштовувати джентльменський набір Web - майстра. Тепер Ви можете спокійно тестувати будь-які скрипти на своєму домашньому комп'ютері.

З величезною повагою до Вас Василь ..

а чому у мене не зберігає файл httpd. пише: Неможливо створити файл C: \ Programm Files \ Apache Software Fundation \ Apache 2.2 \ conf \ httpd.conf

і не знайшов рядки #AddHandler server-parsed .shtml