Все в одному
Незважаючи на те, що дані в статті, що публікується, трохи застаріли, ми знайшли корисним розмістити її на нашому сайті. Стаття представляє огляд найбільш популярних пакетів, що включають зв'язку Apache+PHP+Perl+MySQL для Windows. Розглянуті EasyPHP, Денвер, Phpdev та BigApache
Apache під Windows
Сучасна web-розробка у багатьох випадках потребує використання динамічних рішень, написання скриптів різними мовами програмування, навичок роботи з базами даних. У цьому процесі виникає необхідність налагодження створених програм на відповідному тестовому сервері. Окрім самого сервера, нам ще знадобляться інтерпретатори необхідних мов програмування та СУБД.
Давайте подивимося дані netstat.ru. Якщо вірити наведеним там відомостям, найпопулярнішим web-сервером Рунету є Apache, переважно версій 1.3.2 і 1.3.27. цей продукт розповсюджується вільно, а завдяки відкритому API користується прихильністю розробників додаткових модулів. Підтримкою та координацією розвитку Apache займається група Apache Server Foundation, а сам сервер визнається одним із найбільших досягнень розробників вільного ПЗ.
Разом з Apache, зазвичай, вживаються мови програмування РНР і Perl, хоча можуть бути інші варіанти - це від поставлених завдань. Це також вільні продукти з великою кількістю шанувальників, які насправді показали свою придатність для застосування в web-проектах різного плану та рівня.
Щодо СУБД, то досить часто для вирішення подібних завдань використовують пакет MySQL. Основні його переваги - це достатня функціональність та швидкодія у сукупностіз простотою розробки додатків із її використанням. Існують і набагато потужніші системи, у тому числі й вільні, проте MySQL постійно розвивається і не збирається здавати свої позиції. Якщо говорити про умови придбання, то пакет MySQL є безкоштовним для некомерційного застосування. Ця СУБД пропонується дуже значною кількістю хостерів у різних тарифних планах, у тому числі і на деяких безкоштовних майданчиках.
Але це стосується, так би мовити, server-side. Розробка самих додатків ведеться, зазвичай, на робочих станціях, у ролі нерідко виступають звичайні домашні персоналки. Як бути у такому разі? Відповідь давно знайдена - необхідно відтворити на своїй локальній машині "серверне" середовище, в якому зможуть працювати необхідні програми.
Пакети Apache і MySQL, як і необхідні інтерпретатори мов програмування входять у більшість дистрибутивів тієї ж ОС Linux. Тут вони працюють у "рідному" для себе середовищі і найбільш коректно. В ідеалі, налагодження скриптів для розміщення на конкретному хостингу варто займатися в тому ж середовищі і за допомогою версій відповідного програмного забезпечення, що збігаються з такими у обраного хостера. Це дозволило б мінімізувати ризик того, що наші скрипти на реальному сервері запрацюють не так, як ми від них очікуємо.
Оскільки, як ми вже зазначили, технологія може вестися і на домашній машині, це переважно означає, що мати справу треба буде з операційними системами від Microsoft. З цього не варто робити висновок про те, що якщо комусь не хочеться освоювати згадані вище "рідні" для Apache ОС, то йому доведеться відмовитися від ідеї налагодження на своєму комп'ютері під керуванням Windows кількох власних скриптів, або налаштування "підНазвані пакети можуть працювати на багатьох платформах, серед яких Unix, Linux, BSD, Solaris і навіть MacOS. Для нас важливий той факт, що є версії всіх необхідних нам пакетів, сумісні з ОС Windows.
Більше того, є рішення, що дозволяє уникнути процедури ручної установки та налаштування їх окремо. Це так звані "комплекси", які включають Windows-версії Apache, MySQL та реалізації деяких популярних мов програмування. Дані компоненти заздалегідь відконфігуровані, адже саме на цьому етапі робиться найбільша кількість помилок людьми, які раніше не працювали з подібним програмним забезпеченням.
Так що якщо нас поки що не цікавлять нюанси налаштування серверного ПЗ і не бентежать теоретично можливі проблеми з подальшою сумісністю, варіант використання такого комплексу виглядає дуже привабливо. Пропонований варіант розгортання тестового Apache дозволяє швидко розпочати продуктивну роботу, не витрачаючи дорогоцінний час на настроювання власне тестового web-сервера та інших компонентів, і взагалі абстрагуватися від завдань адміністрування, зосередившись на своїх безпосередніх завданнях.
Подібні пакети можна, в принципі, використовувати не лише за прямим призначенням, тобто для тестування власноручно написаних скриптів для своїх web-сторінок, а й у ролі (умовно) повноцінного сервера в межах, наприклад, локальної мережі. Звичайно, в такій якості для більш-менш серйозних випадків, на мій погляд, ними краще не користуватися, але сама можливість за певних умов може бути досить привабливою.
Виділяються такі способи побудови таких комплексів: це може бути набір стандартних windows-версій необхідних пакетів з мінімумом змін, забезпечених загальнимінсталятором і попередньо відконфігурованими настроювальними файлами або максимально компактний варіант, що зберігає, проте, необхідні властивості, достатні для більшості аматорських розробок. Відповідно і напрями розвитку подібних пакетів зводяться або до нарощування числа компонентів, що включаються, і розробки додаткових панелей управління, інсталяторів доповнень тощо, або до збереження невеликих розмірів при додаванні нових версій основних компонентів пакета. Покінчивши з теоретичною частиною, перейдемо до практичного ознайомлення з деякими рішеннями такого плану.
Цей пакет має французьке коріння. Офіційний сайт – http://www.easyphp.org/. Розмір дистрибутива – трохи більше 11 Мб. Остання на сьогоднішній день версія – EasyPHP 1.7, яку можна завантажити звідси. Конфігурація цього пакета така:
- Apache 1.3.27
- PHP 4.3.3
- MySQL 4.0.15
- PhpMyAdmin 2.5.3
Для нормального функціонування MySQL необхідний файл налаштування mysql.ini. Якщо у нас вже встановлена будь-яка версія цієї СУБД, то програма-інсталятор EasyPHP збереже цей файл під ім'ям типу "my_поточна_дата.ini". Після першого старту EasyPHP його іконка влаштовується в системному треї. По правому кліку вона дає доступ до меню керування з наступних пунктів:
Домашнім каталогом наших проектів є директорія www. Тестових скриптів розробники EasyPHP нам не пропонують, тому для перевірки працездатності інтерпретатора PHP варто створити сторінку з найпростішим скриптом, наприклад, що виводить інформацію про PHP здопомогою phpinfo.
До речі, пакет EasyPHP підтримує можливість апгрейду своїх компонентів. Так для заміни PHP необхідно зупинити сервери, розпакувати вміст завантаженого з php.net архіву в підкаталог php інсталяційного каталогу EasyPHP, замінити наявні бібліотеки php4apache.dll і php4ts.dll на нові, а також замінити та перевірити конфігураційний файл php. Якщо все зроблено правильно, при наступному запуску EasyPHP ми побачимо результат своїх дій.
Цей пакет розроблено українськими програмістами. Адреса офіційного сайту – web.dklab.ru. Назва його розшифровується наступним чином: "Джентльменський Набір Веб-розробника". Він відрізняється завидною для своїх можливостей компактністю (розмір дистрибутива близько двох мегабайт) і наявністю підтримки як PHP, так і Perl. Конфігурація "Денвера" поточної версії така:
Як говориться в супровідній документації, "Пропонований комплекс програм дозволяє запустити повноцінний веб-сервер Apache з підтримкою PHP, Perl і сервер MySQL на машині, що працює під керуванням MS Windows 95/98/Me/NT/2000/XP. Як правило, при встановленні не потрібно ніякої настройки, комплекс може використовуватися навіть непідготовленими користувачами, проте він може знайти застосування не тільки для навчання азам веб-програмування, але й для налагодження інтерактивних сайтів, програм, що використовують базу даних MySQL, написаних мовами PHP та Perl. - важко додати до цього щось від себе, розробники висловилися більш ніж доступно. Детальну документацію щодо роботи з "Денвером" при бажанні необхідно завантажувати окремо.
Особливістю роботи пакета і те, що з повної імітації *nix-системи він, використовуючи утиліту substr, створює у Windows-системі окремий віртуальний диск.При цьому вся реальна робота ведеться із створеною раніше папкою C:WebServers (за замовчуванням) або іншою обраною нами при установці. У цій папці програмою створюється структура каталогів, подібна до такої структури звичної для Unix, що дещо полегшує подальшу роботу з розміщення готового проекту на реальному сервері.
Існує два варіанти запуску "Денвера". Перший передбачає створення віртуального диска під час завантаження Windows. Старт серверів здійснюється вручну. Цей варіант вважається кращим, тому що дає деякі додаткові можливості при роботі з командним рядком та встановленими програмами без запуску Apache. Другий має на увазі створення віртуального диска безпосередньо при ручному запуску серверів. Тепер можна переходити до тестування. Для цього передбачено цілий набір скриптів, що дозволяють оцінити роботу різних підсистем пакета.
- Apache 1.3.27
- PHP 4.2.3
- MySQL 4
- PhpMyAdmin 2.3.2
- Invision Board
- PhpWebsite
Це рішення претендує на роль кошти на всі випадки життя. Навіть сама назва пакета підкреслює це прагнення. Сайт проекту – http://www.bigapache.org/. Конфігурація пакета така:
- Apache 2 дляWindows
- PHP 4.3.x
- MySQL 4
- mod_perl (Perl 5.8 з модулем ASP::Apache)
- SSLv2, SSLv3 TLSv1
- Підтримка Java (mod_jk/JBoss/Tomcat 4.1.x)
- Підтримка мови Python (mod_python/Python 2.x)
- Поштовий сервер Mercury
Відноситися до подібного прагнення охопити якнайбільше компонентів можна по-різному. З одного боку, це зручно: налаштовувати вже точно нічого не доведеться, а нам відразу стануть доступні багато технологій розробки. Зворотний бік подібної функціональності та насиченості додатковими елементами легко передбачуваний - розмір пакета перевищує 90 мегабайт. Можливий такий підхід. Якщо нам потрібні якісь технології крім класичних Apache+PHP(Perl)+MySQL, то може, має сенс збирати свій власний комплекс із стандартних windows-версій необхідних програм? Готової відповіді тут немає, кожен вільний вирішувати самостійно.
На розглянутих вище пакетах список рішень, що спрощують розгортання web-сервера Apache на Windows-машині, не закінчується, але скласти загальне враження про можливості таких комплексів, або зробити свій вибір, можна керуючись описомзгаданих пакетів. Всі вони побудовані на основі вільних компонентів та, у свою чергу, поширюються безкоштовно. Це типові представники сімейства. По суті, всі вони вирішують однакові завдання, тому їх функціональні можливості найчастіше близькі. Залишається лише оцінити власні запити, вибрати пакет і, засукавши рукави, братися за роботу.