Незважаючи, на те, що дані в опублікованій статті трохи застаріли, ми знайшли корисним розмістити її на нашому сайті. Стаття представляє огляд найбільш популярних пакетів, що включають зв’язку Apache+PHP+Mysql+MySQL для Windows. Розглянуто EasyPHP, Денвер, Phpdev і BigApache

Apache під Windows

Сучасна web-розробка в багатьох випадках вимагає використання динамічних рішень, написання скриптів на різних мовах програмування, навичок роботи з базами даних. У цьому творчому процесі виникає необхідність налагодження створених програм на відповідному тестовому сервері. Крім самого сервера, нам ще знадобляться інтерпретатори необхідних мов програмування, а також СУБД.

Давайте подивимося на дані netstat. Якщо вірити наведеними там даними, найпопулярнішим 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 декількох власних скриптів, або ж налаштування «під себе» готової CMS. Названі пакети можуть працювати на багатьох платформах, серед яких Unix, Linux, BSD, Solaris і навіть MacOS. Для нас важливим є той факт, що є версії всіх необхідних нам пакетів сумісні з ОС Windows.

Більше того, є рішення, що дозволяє уникнути процедури ручної установки і налаштування їх окремо. Це так звані «комплекси», які включають Windows-версії Apache, MySQL та реалізації деяких популярних мов програмування. Дані компоненти заздалегідь отконфигурированы, адже саме на цьому етапі робиться найбільша кількість помилок людьми, не працювали раніше з подібним програмним забезпеченням.

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

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

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

EasyPHP

Даний пакет має французькі корені. Офіційний сайт http://www.easyphp.org/. Розмір дистрибутива — трохи більше 11 Мб. Остання на сьогоднішній день версія — EasyPHP 1.7, яку можна завантажити звідси. Конфігурація цього пакету наступна:

  • Apache 1.3.27
  • PHP 4.3.3
  • MySQL 4.0.15
  • PhpMyAdmin 2.5.3

Як можна помітити, обрана добре перевірена і широко поширена версія Apache. Що стосується інших програм, то тут все на висоті — нам пропонують найсвіжіші версії.

Інсталяція EasyPHP робиться елементарно: запускаємо Setup і слідуємо його вказівкам. Інсталятор спілкується з нами французькою, але зрозуміти його вимоги можна й не володіючи глибокими знаннями в рідній мові Вольтера і Жюля Верна — погоджуємося з ліцензією, вибираємо папку для установки, стежимо за копіюванням файлів.

Для нормального функціонування MySQL необхідний конфігураційний файл mysql.ini. Якщо у нас вже встановлена якась версія даної СУБД, то програма-інсталятор EasyPHP збереже цей файл під ім’ям типу «му_текущая_дата.ini». Після першого старту EasyPHP його іконка влаштується в системному треї. По правому кліку вона дає доступ до меню управління з наступних пунктів:

  • Help — деяка вступна інформація про EasyPHP, і посилання на FAQ і сайт PHP.
  • Log files — перегляд лог-файлів сервера Apache (error.log і access.log), СУБД MySQL (mysql.err) і самого
  • EasyPHP. Безцінне джерело інформації при налагодження скриптів.
  • Configuration — налаштування Apache (файл httpd.conf), розширення PHP (за замовчуванням), конфігурація
  • MySQL (файл my.ini), а також запуск вбудованого PhpMyAdmin
  • Web local — посилання на стартову сторінку localhost
  • EasyPHP — запуск невеликий консолі налаштувань самого EasyPHP. Аналогічний результат дає лівий клік на значку програми в системному треї.
  • Explore — відкриває домашній каталог нашого Apache
  • Administration — сторінка з деякими відомостями про поточних версіях та налаштування компонентів системи. Зручним може здатися створення нових аліасів з допомогою спеціальної форми.
  • Local Web — відкриває стартову web-сторінку домашнього каталогу.
  • Restart, Stop, Exit — зрозуміло без пояснень

Давайте познайомимося з консоллю EasyPHP. Тут, крім уже названих опцій, пропонуються і деякі додаткові системні налаштування: прямий запуск/запуск/зупинка Apache і MySQL, а також їх виконання в режимі сервісу, завантаження EasyPHP при старті Windows, автоматична перевірка оновлень EasyPHP і автоматичний ж перезапуск серверів при внесенні змін в їх конфігурації. Можливий вибір мови інтерфейсу зі списку доступних.

Домашнім каталогом для наших проектів є директорія www. Тестових скриптів розробники EasyPHP нам не пропонують, тому для перевірки працездатності інтерпретатора PHP варто створити сторінку з простим скриптом, наприклад виводить інформацію про PHP за допомогою phpinfo.

До речі кажучи, пакет EasyPHP підтримує можливість апгрейда своїх компонентів. Так для заміни PHP необхідно зупинити сервери, розпакувати вміст завантаженого з php.net архіву в підкаталог php інсталяційного каталогу EasyPHP, замінити наявні бібліотеки php4apache.dll і php4ts.dll на нові, а також замінити і перевірити конфігураційний файл php.ini. Якщо все зроблено правильно, то при наступному запуску EasyPHP ми побачимо результат своїх дій.

Денвер

Цей пакет розроблений російськими програмістами. Адреса офіційного сайту web.dklab.ru. Його назва розшифровується наступним чином: «Джентльменський Набір ВЕб-Розробника». Він відрізняється завидною для своїх можливостей компактністю (розмір дистрибутива всього близько двох мегабайт) та наявністю підтримки як PHP, так і Perl. Конфігурація «Денвера» поточної версії така:

  • Apache 1.3.27, SSI, mod_rewrite, mod_php
  • PHP 4.3.0 з підтримкою gd і MySQL
  • MySQL 3.23.53 з підтримкою транзакцій (mysqld-max)
  • PhpMyAdmin 2.3.0
  • Ядро Perl без стандартних бібліотек

Емулятор Sendmail, підтримує спільну роботу з PHP / Perl і який складав листи в спеціальний каталог Крім названих компонентів, «Денвер», як і належить такій системі, володіє єдиним інсталятором, а також рядом оригінальних доповнень, наприклад базується на шаблонах системою управління віртуальними хостами Apache. Зовсім не зайвим видається і перекладені на російську мову коментарі в конфігураційних файлах.

Як йдеться в супровідній документації, «Пропонований комплекс програм дозволяє запустити повноцінний веб-сервер Apache з підтримкою PHP, Perl і сервер MySQL на машині, що працює під управлінням MS Windows 95/98/Me/NT/2000/XP. Як правило, при встановленні не потрібно ніякої установки, комплекс може використовуватися навіть непідготовленими користувачами. Тим не менш, він може знайти застосування не тільки для навчання азам веб-програмування, але і для налагодження інтерактивних сайтів, програм, що використовують базу даних MySQL, написаних на мовах PHP та Perl» — важко додати що-небудь від себе, розробники висловилися більш ніж доступно. Детальну документацію по роботі з «Денвером» при бажанні необхідно завантажувати окремо.

Для завантаження викладені різні версії комплексу, що відрізняються іншим набором компонентів. Про їх складі можна судити по досить інформативної назві самого файлу. Так ім’я пакета «2003-02-10_Base_a1.3.27_p4.3.0_m3.23.53_pma2.3.0.exe» означає, що він був створений в лютому 2003 року і повинен містити Apache 1.3.27, PHP 4.3.0 і MySQL 3.23.53. Є й доповнення до «Денверу», так, наприклад, можна завантажити ActivePerl з набором бібліотек, а також деякі розширення для PHP.

Особливістю системи є те, що для більш повної імітації *nix-системи, використовуючи утиліту substr, створює в Windows-системі окремий віртуальний диск. При цьому вся реальна робота ведеться з створеної раніше папки C:WebServers (за замовчуванням) або іншої, обраної нами при установці. У цій папці програмою створюється структура каталогів, подібна такій структурі звичної для Unix, що дещо полегшує подальшу роботу з розміщення готового проекту на реальному сервері.

Існує два варіанти запуску «Денвера». Перший передбачає створення віртуального диска при завантаженні Windows. Старт серверів здійснюється вручну. Цей варіант вважається кращим, так як дає деякі додаткові можливості при роботі з командним рядком і встановленими програмами без запуску самого Apache. Другий передбачає створення віртуального диска безпосередньо при ручному запуску серверів. Тепер можна переходити до тестування. Для цього передбачений цілий набір скриптів, які дозволяють оцінити роботу різних підсистем пакета.

Phpdev

Ще один комплекс, який пропонує готове рішення, адресована розроблювачам web-проектів, призначених для роботи під Apache. Офіційне представництво знаходиться на http://www.phpdev.firepages.com.au/. Остання версія — phpdev423. До її складу входять:

  • Apache 1.3.27
  • PHP 4.2.3
  • MySQL 4
  • PhpMyAdmin 2.3.2
  • Invision Board
  • PhpWebsite

Крім цього, можна завантажити окремо mod_perl для Apache (1.27 + Perl 5.6.1), FTP-сервер Cerebus і PHP 4.3.0. Як можна помітити, крім компонентів, що застосовуються власне для розробки і налагодження скриптів, творці phpdev вважали за необхідне включити в пакет ще й парочку CMS, ймовірно для того, щоб клієнт відразу зрозумів, навіщо йому тестовий web-сервер. Що стосується процесу встановлення і роботи з даними пакетом, то тут немає нічого надприродного і принципово відрізняється від уже розглянутих систем.

BigApache

Це рішення претендує на роль засобу практично на всі випадки життя. Навіть сама назва пакету підкреслює це прагнення. Сайт проекту — 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

Таким чином, крім стандартних для інших комплексів Apache, PHP, MySQL і Perl, BigApache містить ще й непогану підтримку Java, Perl і ASP, а також масу доповнень типи вбудованих систем шифрування, аналізатор лог-файлів і інших корисних речей, список яких досить великий. Для апгрейда встановлених компонентів застосовується так званий Webinstaller, довантажувати найновіші версії програм і встановлює їх у зв’язку BigApache. Додамо, що пакет розповсюджується на умовах open source і пропонується як для некомерційного, так і для комерційного застосування, а працює він під Windows NT/2000/XP.

Ставитися до подібного прагнення охопити як можна більше компонентів можна по-різному. З одного боку, це зручно налаштовувати вже точно нічого не доведеться, а нам відразу стануть доступні багато технології розробки. Зворотна сторона подібної функціональності і насиченості додатковими елементами легко передбачувана — розмір пакета перевищує 90 мегабайт. Можливий і такий підхід. Якщо нам потрібні якісь технології крім класичних Apache+PHP(Perl)+MySQL, може, має сенс збирати свій власний комплекс із стандартних windows-версій необхідних програм? Готової відповіді тут немає, кожен має право вирішувати самостійно.

На розглянутих вище пакетах список рішень, що спрощують розгортання web-сервера Apache на Windows-машині, не закінчується, але скласти загальне враження про можливості таких комплексів, а то і зробити свій вибір, можна керуючись описом згаданих пакетів. Всі вони побудовані на основі вільних компонентів і, в свою чергу, поширюються безкоштовно. Це типові представники сімейства. По суті, всі вони вирішують однакові завдання, тому їх функціональні можливості часто близькі. Залишається тільки оцінити власні запити, вибрати пакет і, засукавши рукави, братися за роботу.