Частина 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